はじめに
Wi-Fi CSI(Channel State Information:チャネル状態情報)に関する研究を行う中で、Nexmon_CSI を用いた CSI 収集環境を構築しています。
CSI 収集には送信機からの安定したパケット送信が不可欠ですが、Raspberry Pi 4B の**内蔵 Wi-Fi チップ(BCM43455)**を送信機として使用したところ、電波が不安定になるという問題が発生しました。
原因として考えられるのは、内蔵チップが SoC に近接実装されているため、CPU やメモリ動作に伴う回路ノイズ(EMI)が RF 信号に混入し、SN 比(Signal-to-Noise Ratio)が劣化してしまうことです。結果として、有効な CSI データがノイズに埋もれてしまう可能性が高いと考えました。
そこで、外付け USB Wi-Fi アダプタ(RTL8812BU) を導入し、SoC から物理的に距離を置いた安定した送信環境を構築することにしました。
本記事では、RTL8812BU の導入手順と「本当に使えているのか?」を確認する方法をまとめます。さらに、どの通信プロトコル(802.11b/g/n/ac)で接続しているかの確認方法もまとめます。
使用環境
| 項目 | 内容 |
|---|---|
| デバイス | Raspberry Pi 4B |
| OS | Raspberry Pi OS |
| カーネル | 6.12系 |
| Wi-Fi アダプタ | RTL8812BU(例:EP-AC1686) |
カーネルが 6.12 以上の場合:外部ドライバ不要!
内蔵ドライバ rtw88 が RTL8812BU に対応しています。
むしろ外部ドライバは入れない方が安定します。
手順
① 必要パッケージのインストール
$ sudo apt update
② USB Wi-Fi アダプタを接続
- Raspberry Pi の USB 3.0(青)ポート に接続
③ Wi-Fi チップが認識されているか確認
$ lsusb
認識されていれば以下のように表示されます。
Realtek Semiconductor Corp. RTL88x2bu
④ ドライバ(rtw88)が読み込まれているか確認
$ lsmod | grep rtw88
以下が表示されれば OK です(内蔵ドライバで動作中)。
rtw88_8822bu
rtw88_usb
rtw88_core
⑤ ネットワークインターフェースの確認
$ ip a
wlan0 → 内蔵 または USB
wlan1 → もう一方
⑥ どちらが USB アダプタか判別する
$ iw dev
MAC アドレスで内蔵と USB を判別できます。
⑦ 内蔵 Wi-Fi を無効化(重要)
USB アダプタを優先して使用するため、内蔵 Wi-Fi を無効化します。
$ sudo nano /boot/firmware/config.txt
末尾に以下を追加します。
dtoverlay=disable-wifi
再起動して設定を反映させます。
$ sudo reboot
⑧ USB アンテナが使われているか確認
$ ip a
$ iw dev
wlan0 が USB アダプタになっていれば OK です。
⑨ Wi-Fi 接続確認
$ iw wlan0 link
接続中であれば以下のように表示されます。
SSID: Buffalo-2G-xxxx
freq: 2432
tx bitrate: 144.4 MBit/s MCS 15 short GI
⑩ 通信プロトコルの確認(重要)
iw wlan0 link の出力から、接続中のプロトコルを判定できます。
| 表示内容(iw / iwconfig) | 規格 | 周波数帯 | 判定ポイント |
|---|---|---|---|
HE |
802.11ax(Wi-Fi 6) | 2.4 / 5 / 6 GHz | High Efficiency 表記 |
VHT |
802.11ac(Wi-Fi 5) | 5 GHz | Very High Throughput |
HT または MCS
|
802.11n(Wi-Fi 4) | 2.4 / 5 GHz | MCS index が表示される |
54 Mbps 前後(固定) |
802.11g | 2.4 GHz | OFDM、MCS 表示なし |
11 Mbps 以下 |
802.11b | 2.4 GHz | DSSS、低速 |
補足
- 802.11n / ac / ax では「MCS(Modulation Coding Scheme)」が使用される
- 802.11ac は
VHT、802.11ax はHEと明示される - 802.11b/g はレガシー規格のため、単純なビットレート(Mbps)で表示される
MCS の詳細については以下の記事を参考にしてください。
https://www.silex.jp/library/blog/20250404
注意
- MCS は 802.11n だけでなく ac / ax でも使用されるため、「MCS がある = n」とは限らない
- 最終的な判定は「周波数(
freq)」と併せて判断すること
今回の例:
tx bitrate: 144.4 MBit/s MCS 15
freq: 2432
👉 MCS あり + 2.4 GHz → 802.11n(Wi-Fi 4) で接続中
まとめ
- カーネル 6.12 以上 → 外部ドライバ不要
-
rtw88が自動で動作する - USB アンテナはそのまま使える
- 内蔵 Wi-Fi は無効化推奨
- 通信規格は
iw wlan0 linkで確認
おわりに
外付けアンテナを使うと、以下のようなメリットがあります。
- 感度向上
- CSI 取得の安定化
- 長距離通信への対応
Wi-Fi センシングや IoT 用途では特に有効です。
ぜひ活用してみてください!