2022年9月から日本でも6GHz帯が無線LANで使用することが許可されました。Netgear A8000を使って、ラズパイで6GHz対応のルータモードアクセスポイントを作ってみました(English version article is here)。
接続用のクライアントは「ラズパイで6GHz帯WiFiを使ってみた(クライアント編)」で作ります。
なお、ブリッジモードアクセスポイントの構築については、ラズパイで6GHz帯WiFiを使ってみた(ブリッジモードアクセスポイント編)をご覧下さい。
まとめ - これだけやればできる
- A8000がUSB接続時に返すベンダーID・製品IDが標準mt7921uドライバに認識されるようにする
- Linux無線規制データベースを最新化して日本での6GHz帯使用許可を反映する
- MediaTek WiFiアダプタ用のファームウェアを最新化する
- dnsmasqを導入する
- hostapdを導入してv2.10へ差し替える
前提
- Raspberry Pi OSはBullseye(kernel 6.1)を利用しています
- ラズパイの内蔵WiFiのインターフェース名がwlan0、A8000のインターフェース名がwlan1であるとします
- 6GHz帯のネットワークを192.168.193.0 / 255.255.255.192とし、アクセスポイントに192.168.193.62を割り当てます
A8000がUSB接続時に返すベンダーID・製品IDが標準mt7921uドライバに認識されるようにする
「ラズパイで6GHz帯WiFiを使ってみた(クライアント編)」を参照
Linux無線規制データベースを最新化して日本での6GHz帯使用許可を反映する
「ラズパイで6GHz帯WiFiを使ってみた(クライアント編)」を参照
MediaTek WiFiアダプタ用のファームウェアを最新化する
「ラズパイで6GHz帯WiFiを使ってみた(クライアント編)」を参照
dnsmasqを導入する
sudo apt-get install dnsmasq
でパッケージを導入した後、設定ファイル/etc/dnsmasq.conf
へ以下の記述を追加します。
interface=wlan1
dhcp-range=192.168.193.1,192.168.193.61,12h
hostapdを導入してv2.10へ差し替える
まず最初に、sudo apt-get install hostapd
でパッケージを導入します。
次に、802.11axサポートはv2.10で付加されたので、本稿執筆当時で最新であるv2.10への差し替えを行います。
「ラズパイで6GHz帯WiFiを使ってみた(クライアント編)」ではWPA Supplicantをv2.10へ差し替えます。WPA Supplicantとhostapdの両方が含まれたhostap_2_10.tar.gz
を配布サイトからダウンロードします。
以下は手順です。
tar -xzvf hostap_2_10.tar.gz
cd hostap_2_10/hostapd
cp defconfig .config
echo CONFIG_IEEE80211AX=y >> .config
echo CONFIG_IEEE80211AC=y >> .config
echo CONFIG_SAE=y >> .config
echo CONFIG_ACS=y >> .config
make
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd_2_9
sudo cp hostapd /usr/sbin/
sudo mv /usr/sbin/hostapd_cli /usr/sbin/hostapd_cli_2_9
sudo cp hostapd_cli /usr/sbin/
dhcpcdの設定ファイル/etc/dhcpcd.conf
を変更して、wlan1へはDHCPを適用せず静的IPアドレスを割り当てるようにします。
interface wlan1
static ip_address=192.168.193.62/26
nohook wpa_supplicant
hostapdの設定ファイル/etc/hostapd/hostapd.conf
を新規に作成します。ssid=
、sae_password=
、channel=
の部分は適当に変更して下さい。
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
country_code=JP
interface=wlan1
driver=nl80211
ssid=foo-ax
sae_password=foobar
hw_mode=a
channel=57
ieee80211ax=1
wmm_enabled=1
op_class=131
ieee80211w=2
auth_algs=3
wpa=2
wpa_key_mgmt=SAE
rsn_pairwise=CCMP
rsn_preauth=1
sae_require_mfp=1
sae_pwe=1
wpa_group_rekey=1800
group_cipher=CCMP
wpa_psk_radius=0
hostapdをブート時に自動開始するサービスとして登録します。
sudo systemctl unmask hostapd.service
sudo systemctl enable hostapd.service
必要に応じて、/etc/sysctl.d/routed-ap.conf
に以下を追加することで、IPv4フォワーディングを有効化します。
net.ipv4.ip_forward=1
完了
sudo hostapd_cli status
すると、6GHz帯でアクセスポイントが稼働していることがわかります。お疲れ様でした。
$ sudo hostapd_cli status
Selected interface 'wlan1'
state=ENABLED
phy=phy1
freq=6235
num_sta_non_erp=0
num_sta_no_short_slot_time=1
num_sta_no_short_preamble=1
olbc=0
num_sta_ht_no_gf=0
num_sta_no_ht=1
num_sta_ht_20_mhz=0
num_sta_ht40_intolerant=0
olbc_ht=0
ht_op_mode=0x0
cac_time_seconds=0
cac_time_left_seconds=N/A
channel=57
edmg_enable=0
edmg_channel=0
secondary_channel=0
ieee80211n=0
ieee80211ac=0
ieee80211ax=1
beacon_int=100
dtim_period=2
he_oper_chwidth=0
he_oper_centr_freq_seg0_idx=0
he_oper_centr_freq_seg1_idx=0
supported_rates=0c 12 18 24 30 48 60 6c
max_txpower=23
bss[0]=wlan1
bssid[0]=94:18:65:xx:xx:xx
ssid[0]=foo-ax
num_sta[0]=1
おまけ
6GHz WiFiには直接関係のない話題です。
dnsmasqを使って、wlan1だけでなくeth0でもDHCPによるIPアドレス動的配布を行いたいが、上手く行かないという声を頂きました。
/etc/dhcpcd.conf
でeth0のIPアドレスを指定すると、ケーブル未接続状態ではリンクダウンとなりeth0インターフェースが利用できないことが原因のようです。昔ながらのやり方でブート時のスクリプトでifconfigによってインターフェース定義することで回避しましょう。
auto eth0
iface eth0 inet static
address 192.168.194.62
netmask 255.255.255.192
interface=wlan1
dhcp-range=192.168.193.1,192.168.193.61,12h
interface=eth0
dhcp-range=192.168.194.1,192.168.194.61,12h
dhcp-option=3 # no default route
dhcp-option=tag:wlan1,option:classless-static-route,192.168.194.0/26,192.168.193.62
dhcp-option=tag:eth0,option:classless-static-route,192.168.193.0/26,192.168.194.62
interface wlan1
static ip_address=192.168.193.62/26
nohook wpa_supplicant
これでokです。
$ cat /var/lib/misc/dnsmasq.leases
1690710797 94:18:65:xx:xx:xx 192.168.193.7 oak 01:94:18:65:xx:xx:xx
1690709032 04:1e:64:xx:xx:xx 192.168.194.29 rose 01:04:1e:64:xx:xx:xx
eth0に接続したMacにもIPアドレスが配布されるようになりました。