概要
Raspberry Pi Zero2Wにドライバを入れて6GHz帯域のAPに接続してみました。
環境
・Raspberry Pi Zero 2 W
・Ubuntu 22.04 Server
・Archer TXE70UH
・32GB SanDisk Extreme microSDXC™ UHS-I CARD
手順
ドライバの導入
まずは、パッケージをアップデートし、NetworkManagerを入れます。
sudo apt update
sudo apt install -y network-manager
次に、Wi-Fiアンテナのドライバを入れます。
このとき公式のものを入れると、「Archer TXE70UH」用に修正をしないといけないため、修正済みのリポジトリを公開するのでそれを使用してください。
※私の環境だと国コードを日本にすると2.4GHz帯域しか認識しなかったためアメリカにしています。
cd ~/
git clone https://github.com/Hissa-K/TXE70UH
cd TXE70UH
次に入れたドライバをコンパイル及びインストールします。
しかし、そのままではメモリが足りないので、SDカードの空き容量を使用してスワップ領域を作成することでこれを回避します。
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
以下のコマンドでスワップ領域が生成されたことを確認できます。
free -h
また、makeコマンドを実行する環境を以下のコマンドで導入します。
sudo apt install build-essential module-assistant
sudo m-a prepare
ドライバをクロスコンパイル及びインストールします。
クロスコンパイルにかなり時間がかかるので気長に待ちましょう。
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
sudo make install
入れたドライバのモジュールを有効化します。
sudo modprobe 8852cu
lsmod
コマンドで有効化されているか確認してみてください。
これでドライバの導入は終了です。
ネットワーク設定
Ubuntu側が6GHz帯域の許可をしているかを確認しましょう。
iw
コマンドで確認できます。
sudo apt install iw
iw reg get
このコマンドで対応している周波数帯域が表示できます。
日本で使用できる帯域である「5,925MHz~6,425MHz」が含まれているか確認してください。
表示されない場合は、wpa_supplicantが古いバージョンのままだと6GHz帯域のAPに接続できないので、新しいものと差し替えます。
cd ~/
git clone git://w1.fi/hostap.git
cd hostap/wpa_supplicant
sudo apt install libssl-dev libdbus-1-dev libnl-genl-3-dev libnl-route-3-dev
cp defconfig .config
make
sudo make install
sudo cp -f wpa_supplicant /usr/sbin/.
sudo chmod 755 /usr/sbin/wpa_supplicant
もし、対応していない場合国を設定し直すと治ります。
以下のコマンドで国を設定できます。
sudo iw reg set JP
ネットワーク構成ファイルの編集
まずは、デバイス名を取得します。
WiFiアダプターを接続し、デバイス名を確認します。
ip link show
wlx242fdから始まるものがWiFiアダプター名です。
この名前を使用するのでコピー等で保存しておくことをオススメします。
テキストエディタで接続するアクセスポイントをネットワーク構成ファイルに追記します。
テキストエディタは何でもいいですが、ここではnanoを使います。
既存のファイルを壊さないためにも、新たに設定ファイルを作成します。
cd /etc/netplan
sudo nano 99_config.yaml
ファイルを6GHz帯域のAPに接続できるよう編集します。
「アダプター名」、「SSID・パスワード」は変更してください。
今後の利便性を加味して、ここで静的IPアドレスにすることをオススメします。
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
wifis:
renderer: NetworkManager
wlxxxxxxxxxxxxx:
access-points:
SSID:
auth:
key-management: sae
password: password
dhcp4: false
addresses:
- 192.168.1.xxx/24
routes:
- to: 0.0.0.0/0
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
optional: true
ファイルの権限を変更します。
sudo chmod 600 /etc/netplan/99_config.yaml
最後に変更を反映させます。
sudo netplan apply
起動時に接続待ちが発生して起動が遅くなるので以下のコマンドで設定を変更します。
systemctl disable systemd-networkd-wait-online.service
systemctl mask systemd-networkd-wait-online.service
ここで、再起動をかけて変更を反映させます。
sudo reboot
ここまですると、6GHz帯域のAPに接続できるはずです!
お疲れ様でした。