用Raspberry Pi 做WiFi Access Point (Dump AP) #3
上回已用Pi 3B內置天線設定好802.11g 2.4GHz一個CHANNEL的AP.
今回就講怎樣加一支USB的天線, 去設定多一個802.11ac 5GHz的CHANNEL.
由於Pi 3B 只有USB2.0無USB3.0, 所以最快的AC天線只能去到AC600. AC1200的需要USB3.0. 而若要行WIFI6, WIFI6的天線, 只有PCIe或M.2, 需要用Pi 4B, 以及加支援M.2或PCIe的Additional Board.

本人都係以價錢為主, 所以選擇在香港容易見到的TP-LINK. 最新的TP-LINK AC600天線, 有2隻, Archer T2U (細支) 及 Archer T2U Plus (大支), 裡面用的晶片為RealTek 8821AU, DEFAULT KERNEL不支援, 需要自行COMPILE DRIVER.
怎樣才知個OS是否支援那支USB天線? 可用以下指令:
sudo ip link
這個會列出所有NETWORK DEVICE, Pi 3B內置有天線, 所以一定會有個wlan0, 若支援USB天線, 在插入USB PORT後, 打這個指令, 會出現多一個叫wlan1的INTERFACE. 若無的話, 即不支援. 我們可以再用
sudo dmesg
及
sudo lsusb
以驗查一下硬件是否存在, 如圖:

我們可以見到lsusb同dmesg, 都有TP-Link這支天線存在, 用Realtek chip, 但ip link 就不見wlan1而只見Pi內置天線的wlan0. 之後我們就可以上網試找是用什麼型號的CHIP, 再下載其SOURCE, 再COMPILE. 其他KERNEL不支援的天線, 都可用此方法.
我們知道是用Realtek 8821AU, 本人找了不同的DRIVER, 暫時只有這個PROJECT的DRIVER能在Pi OS上面用.
在此之前, 請先用:
sudo apt update
sudo apt dist-upgrade
UPDATE到最新系統同KERNEL, 之後REBOOT.
之後就可以照LINK入面個INSTRUCTION來裝DRIVER.
sudo apt-get updatesudo apt-get install -y raspberrypi-kernel-headers bc build-essential dkms gitmkdir srccd srcgit clone https://github.com/morrownr/8821au.gitcd 8821au
本人用32BIT IMAGE, 所以執行這句:
sudo ./raspi32.sh
若是用64BIT IMAGE, 請執行這句:
sudo ./raspi64.sh
最後就執行這句COMPILE同INSTALL:
sudo ./install-driver.sh
若成功, 會見SUCCESS, 如圖:

之後REBOOT.
在REBOOT後, 輸入
sudo ip link
見到wlan1就表示成功.

現在開始, 就可以設定一個新5GHz Network.
首先,
cd /etc/init.d
之後COPY hostapd 做hostapd-5g
sudo cp hostapd hostapd-5g
之後修改hostapd-5g, 將以下
DAEMON_DEFS=/etc/default/hostapd
DAEMON_CONF=/etc/hostapd/hostapd.conf
NAME=hostapd
DESC="advanced IEEE 802.11 management"
PIDFILE=/run/hostapd.pid
全部改成:
DAEMON_DEFS=/etc/default/hostapd-5g
DAEMON_CONF=/etc/hostapd/hostapd-5g.conf
NAME=hostapd-5g
DESC="advanced IEEE 802.11 management"
PIDFILE=/run/hostapd-5g.pid
另外將CODE入面, /etc/default/hostapd 改成 /etc/default/hostapd-5g, 及 /etc/hostapd/hostapd.conf 改成 /etc/hostapd/hostapd-5g.conf
之後,
cd /etc/default
將入面的hostapd copy 成hostapd-5g
sudo cp hostapd hostapd-5g
再到,
cd /etc/hostapd
將入面的hostapd.conf copy 成hostapd-5g.conf
sudo cp hostapd.conf hostapd-5g.conf
然後就修改hostapd-5g.conf入面的資料:
country_code=HK
interface=wlan1
bridge=br0
ssid=TestingNetwork-5g
hw_mode=a
channel=36
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=TestingNetworkPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid為TestingNetwork-5g, password 為 TestingNetworkPassword.
hw_mode=a 為802.11ac 5GHz, channel要改成36. interface 為 wlan1.
先用以下指令試行:
sudo hostapd /etc/hostapd/hostapd-5g.conf
成功會如下圖:

之後按CTRL-C離開.
最後, 用此指令將hostapd-5g加入upstart list, 讓這個hostapd-5g可以在BOOT機時START.
sudo update-rc.d hostapd defaultssudo systemctl unmask hostapd-5gsudo systemctl enable hostapd-5g
再REBOOT
之後可以用:
sudo systemctl status hostapd.servicesudo systemctl status hostapd-5g.service
CHECK STATUS, 同看看有無2個NETWORK同時存在. 有就完成.
