✨ はじめに
2014年発売の Raspberry Pi Model B+(型番:811-1284)でも、USB Wi-Fiドングルを使えばまだまだ現役!
今回は、TP-Link製「TL-WN725N(RTL8188EUチップ搭載)」を Raspberry Pi OS (Bullseye) 上で動かすために、
ドライバをビルドして Wi-Fi スキャンに成功するまでの手順を紹介します。
☕ 一言で言えば「古いラズパイでも、あきらめなければなんとかなる」
🧰 使用環境
- Raspberry Pi:Model B+(811-1284)
- OS:Raspbian GNU/Linux 11 (Bullseye)
- カーネル:6.1.21+(元は6.12.33+だったが後述の通りダウングレード)
- Wi-Fiドングル:TP-Link TL-WN725N(RTL8188EUチップ)
まずはドングルを挿して、認識されているか確認
1. 接続確認(USB認識)
lsusb
以下のように表示されれば、デバイスは認識されています:
Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
2. wlan0 インターフェース確認
ip a
wlan0 が表示されれば、OSとしてはWi-Fiインターフェースを認識しています。
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
❓ 動いているか確認する(スキャンできる?)
3. スキャンしてみる
sudo iwlist wlan0 scan
✅ 正常な例:
wlan0 Scan completed :
Cell 01 - Address: XX:XX:XX:XX:XX:XX
ESSID:"YourSSID"
❌ 動かない例:
No scan results
Interface doesn't support scanning : Network is down
→ この場合、ドライバが適切に動作していない可能性が高いです。
※ sudo が抜けていないかなど確認してください
📦 ドライバの確認と競合状況
4. 現在読み込まれているモジュールを確認
lsmod | grep 8188
結果例:
r8188eu
→ OS内蔵ドライバ。動かないことが多い。- 表示なし → ドライバがそもそも読み込まれていない。
8188eu
→ 自分でビルドしたものが動いている(理想)
⚠️ カーネルが新しすぎてハマった話
当初は、Raspberry Pi OS のカーネルバージョンが 6.12.33+
となっていましたが…
make[1]: *** /lib/modules/6.12.33+/build: No such file or directory. Stop.
なんと、対応するカーネルヘッダが配信されていないので、make
で失敗してしまいました。
✅ 安定版カーネルへダウングレード
下記の手順で、安定版 (6.1.21+
) に戻し、ヘッダの再インストールを行いました:
sudo apt install --reinstall raspberrypi-kernel raspberrypi-bootloader
sudo reboot
sudo apt install raspberrypi-kernel-headers
🔧 rtl8188eu ドライバのビルド
1. GitHub からドライバーをクローン
git clone https://github.com/lwfinger/rtl8188eu.git
cd rtl8188eu
2. ビルドとインストール
make
sudo make install
❌ デフォルトドライバの無効化
再起動時に r8188eu
が動作してしまい、自分でビルドした 8188eu.ko
と競合するため、以下を実行しました:
echo "blacklist r8188eu" | sudo tee /etc/modprobe.d/blacklist-r8188eu.conf
sudo reboot
⚡️ ドライバロード&Wi-Fiスキャン
1. モジュール読み込み
sudo modprobe 8188eu
2. wlan0 を up してスキャン
sudo ip link set wlan0 up
sudo iwlist wlan0 scan
結果:
wlan0 Scan completed :
Cell 01 - Address: XX:XX:XX:XX:XX:XX
ESSID:"MyWiFi"
...
★ 無事 Wi-Fi スキャン成功。
しかし、Wi-Fiにつながらない問題発生・・
ドライバ導入(GitHub製 8188eu)
r8188eu
ドライバはカーネル組み込みでは動作が不安定だったため、- GitHubで公開されている aircrack-ng/rtl8188eus を使ってビルド
sudo apt install bc dkms git
git clone https://github.com/aircrack-ng/rtl8188eus
cd rtl8188eus
sudo make dkms_install
その後:
sudo modprobe 8188eu
再起動してから再度接続を試みてください。
📶 Wi-Fi接続に成功させるための最終手順
上記までで iwlist wlan0 scan
に成功しましたが、実際にアクセスポイントへ接続し、IPアドレスを取得するには、もうひと手順必要です。
以下が、私の環境で最終的に成功した接続手順です:
bashコピーする編集するsudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B
sudo dhclient wlan0
補足:
-D wext
は、ドライバ指定で必須でした。nl80211
だと失敗しました。-B
はバックグラウンド実行。wpa_supplicant.conf
の中身は以下の通り:
confコピーする編集するctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="YourSSID"
psk="YourPassword"
key_mgmt=WPA-PSK
}
✅ 接続確認
以下のコマンドで確認できます:
bashコピーする編集するip -4 addr show wlan0
iw wlan0 link
成功時の出力例:
bashコピーする編集するinet 192.168.1.XX/24 ...
Not connected. ← ではなく、アクセスポイント名が出ればOK
また、iwconfig wlan0
でも ESSID、AP、Signal level などが確認できます。
🔁 再起動後も自動接続させる方法
再起動後に毎回手動でコマンドを打つのは面倒なので、私は以下のように設定しました:
/etc/rc.local に追加(exit 0 の直前)
bashコピーする編集するwpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B
dhclient wlan0
wpa_supplicant.service
は私の環境では masked(使用不可)だったため、この方法で安定しています。
📄 試してダメだったこと(ハマりメモ)
せっかくなので、成功に至るまでにうまくいかなかった試行も備忘録として載せておきます:
試したこと | 結果 | コメント |
---|---|---|
make | /build がなく make 失敗 | カーネルを安定版 (6.1.21+) に戻してヘッダ再インストール |
insmod /「resource busy」 | エラー | r8188eu を blacklist で無効化 |
iwlist wlan0 scan | 結果無し | ドライバ競合の可能性あり |
wpa_cli -i wlan0 reconfigure | FAIL | 動作せず |
sudo systemctl start wpa_supplicant | masked だった | 起動できず |
-D nl80211 を指定 | 接続失敗 | wext に変更して成功 |
wpa_supplicant 再起動 | ctrl_iface exists エラー | /var/run/wpa_supplicant/wlan0 を削除して対応 |
ドングル挿し直し後に ifdown wlan0 → ifup wlan0 | 効かない | 自前コマンドで明示起動する方が確実 |
iw wlan0 link が Not connected. のまま | 接続できていなかった | DHCPクライアントが必要だった |
🔮 まとめと所感
TP-Link TL-WN725N は手辰るるい価格ですが、Raspberry Pi で使うにはドライバ競合やカーネル問題など少し左右が必要でした。
それでも、一つずつ調べながら削っていけば、古いラズパイでも十分に Wi-Fi を動かすことができました!
- wextドライバ指定での明示起動がカギ
- 手動→rc.local登録で再起動後も安定
- 無線LAN環境が整っておらずとも、ドライバさえ入れれば古いラズパイでも使える
ポイントは「あきらめなければ、古くても動く」
🔗 参考リンク
- GitHub – lwfinger/rtl8188eu
- TP-Link TL-WN725N 製品ページ
- Raspberry Pi Documentation
- RaspberryPi で TP-Link TL-WN725N を使う
- TP-Link wifi USB ドングルのドライバをラズパイにインストール
- 「TP-Link TL-WN725N」のドライバーをRaspberry Pi 4にインストール
本記事は個人環境にもとづいています。Qiitaやブログで同じように試している人の参考になれば幸いです。
コメント