PR

TP-Link TL-WN725NをRaspberry Piに接続する方法|ドライバ導入とWi-Fi接続までの全手順

古いラズパイとWi-Fiドングルで接続に成功した様子を描いたイラスト 働き方とIT活用
古いRaspberry PiとWi-Fiドングルでネット接続成功!実機の接続イメージと成功メッセージ入り

✨ はじめに

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 reconfigureFAIL動作せず
sudo systemctl start wpa_supplicantmasked だった起動できず
-D nl80211 を指定接続失敗wext に変更して成功
wpa_supplicant 再起動ctrl_iface exists エラー/var/run/wpa_supplicant/wlan0 を削除して対応
ドングル挿し直し後に ifdown wlan0ifup wlan0効かない自前コマンドで明示起動する方が確実
iw wlan0 linkNot connected. のまま接続できていなかったDHCPクライアントが必要だった

🔮 まとめと所感

TP-Link TL-WN725N は手辰るるい価格ですが、Raspberry Pi で使うにはドライバ競合やカーネル問題など少し左右が必要でした。

それでも、一つずつ調べながら削っていけば、古いラズパイでも十分に Wi-Fi を動かすことができました!

  • wextドライバ指定での明示起動がカギ
  • 手動→rc.local登録で再起動後も安定
  • 無線LAN環境が整っておらずとも、ドライバさえ入れれば古いラズパイでも使える

ポイントは「あきらめなければ、古くても動く」


🔗 参考リンク


本記事は個人環境にもとづいています。Qiitaやブログで同じように試している人の参考になれば幸いです。

コメント

タイトルとURLをコピーしました