Debian Linux 11で無線WiFiモジュール・TP-Link TL-WN725Nをセットアップするやり方
※ 当ページには【広告/PR】を含む場合があります。
2022/02/26
2022/04/11

LinuxデスクトップでWiFi接続をしたい場合に、USBドンクルタイプのWiFiクライアント子機を簡単に接続できる時代になりました。
今回はAmazonでも廉価で購入できる代表的なTP-Link製のUSB2.0準規の外付けWiFiモジュール・
高すぎるラズパイ4の代わりにジャンクPCを使う
新型コロナ感染症による世界的な半導体部品の供給不足から、この数年でベアメタルを含むシングルボードコンピュータ製品が品薄で、価格もかなりの高騰した状態で推移しています。
このブログでも度々ラズパイなどの応用をテーマとした技術記事を紹介していますが、Amazonなどで現在のラズパイ4(メモリ4GBモデル)を覗くと、

と大体コロナ前の2倍以上の価格になっています。
この価格を考えると安いスマホと大差ないので、ラズパイシリーズ自体が手軽に大量に買える製品だった頃が懐かしくさえ感じます。
そんな時こそ捨てられずに眠っているような10年以上も前のデスクトップを引っ張り出してきて、Linuxをインストールして使ってみる再考の機会なのかもしれません。
またPC本体だけに2万円も予算があるならば、ジャンクショップで一昔前のマザーボード、メモリ、CPU、HDD、電源ユニット、ケースをラズパイ4相当のスペックを狙って買い揃えても良いでしょう。
そうやって、格安のジャンク品をかき集めて組んだパソコンですが、どうしてもラズパイ4に分があるのは、
特に、オフィスや家庭においてもかつての有線イーサーネット接続から無線WiFiが、主流のインターネット接続方法になっていると思いますので、LinuxOSを載せたジャンクPCがWiFi接続できないのは致命的な弱みになります。
そんな時の強い見方が、今回紹介する
なお、ネット検索で「Debian TL-WN725N」と検索しても当ブログと同様の内容の紹介記事をいくつか探すことができます。
これらの記事の内容は少々古くなっているようで、最近のリリース版であるDebian 10/11 Linuxではドライバのインストールに失敗して利用不可になっています。
よってお手元のパソコンのLinux OSのバージョンにも注意が必要になります。
古いLinuxではTL-WN725Nを認識してくれない
まずは手元のDebian 11の環境の基本情報とカーネルを確認してみます。
#👇Debian11の基本OS情報
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
#👇Debian11のマイナーバージョン情報
$ cat /etc/debian_version
11.2
#👇Linuxカーネルの情報
$ uname -srv
Linux 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 (2021-12-08)
ではまずそのままTL-WN725Nを認識してくれないかと期待して、PCのUSB2.0ポートへ挿し込んでみます。
何もドライバ設定していない手元のDebianが認識しているかというと、
$ lsusb
Bus 003 Device 002: ID 8087:8000 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 14cd:1212 Super Top microSD card reader (SY-T18)
Bus 002 Device 003: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 002 Device 002: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...残念ですがそれらしいデバイスが表示されていないようです。
ということで、WindowsやMacOSと比べて少々面倒ですが、手動でデバイスドライバをインストールする必要があります。
TL-WN725N用のドライバをソースコードビルド&インストールする
Linux用のデバイスドライバはTP-link公式からは提供されるものだとソースコードの更新が遅く、現在の新しいLinuxカーネル上でビルドしてしまうと途中でこけて失敗してしまい、上手く使えないのがほとんどです。
このため、インストールするOSのディストリビューションやカーネルの差異を考慮して、ドライバソフトのソースコードビルド&インストールを手動で行うのが一番現実的で確実です。
TL-WN725Nという製品の基幹チップは、Realtek製の
ということで、RTL8118EUS用のデバイスドライバを利用すればどのようなLinuxでも原理的には動作するはずです。
幸い有志の方が、
これをGitでプロジェクトごと頂いてきて、PCで直接ビルド&インストールをします。
$ sudo apt update
$ sudo apt install -y linux-headers-$(uname -r) build-essential git
$ git clone https://github.com/lwfinger/rtl8188eu
$ cd rtl8188eu
$ make all
$ sudo make install
$ sudo insmod 8188eu.ko
とcコードをmakeするだけで非常に簡単に使えるようになります。
ではドライバがインストールされたようなので、きちんとデバイスが認識されたかを確認してみます。
$ lsusb
#👇デバイスが追加されている
...
Bus 002 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
...
で確かに
認識されると、デスクトップのメニューバーからそのままWiFiデバイスとして利用できるようになります。

トラブルシューティング① 〜 NetworkManagerでSSIDリストで見えない場合の対処
WiFi子機のMACアドレスでIPを固定したいときがたまにあります。
デフォルト設定のままだと、NetworkManagerの仕様でデバイススキャンの度に、ランダムに新しいMACアドレスが割り振られて困る場合、手動で対処する必要があります。
まず
/etc/NetworkManager/conf.d/80-wifi.conf
[device]
wifi.scan-rand-mac-address=no
設定できたらNetworkManagerを再起動しておきます。
$ systemctl restart NetworkManager
参考サイト
トラブルシューティング② 〜 TL-WN725NのNIC(デバイス)がある日突然見えなくなる問題
ようやく古いデスクトップをWiFi対応できた、めでたしめでたし、といきたいところですが、後日Linuxカーネルをアップグレードした直後に、TL-WN725Nのネットワークデバイスが認識されなくなってしました。
自宅でSSHサーバーとして稼働させていたら最悪で、いきなりお家のホームネットワークに接続できなくなります。
帰ってから直接このパソコンにGUIモードで中身を確認すると、

WiFiデバイスだけがゴッソリ消えております。
他方、USBデバイスとしては以下のように認識されていて、ハードウェア的なトラブルではない様子です。
$ lsusb
#👇ちゃんとUSBは認識されている
Bus 002 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
#...
どうやら憶測ですが、ハードウェア的な問題ではなく、ネットワークドライバがカーネルの更新時に破壊されてしまったようです。
...これは困ったと思い、色々と設定を弄って回復を試みたものの、結局は
このような不安定な挙動は、無償で有志の方が提供されているソフトウェアの宿命というか、ある程度は仕方のないと許容する必要はあります。
不具合があったら悶々と悩まずに、一度ネットワークドライバの再インストールを試みれば幸せになれるかも知れません。
SSHサーバーの設定
先ほどまでの内容でTL-WN725NをDebian11で利用可能になっていますが、ラズパイの代わりに使うのなら折角ですので次なるステップとして、
#👇openssh-serverをインストール
$ sudo apt update && sudo apt install openssh-server
#👇インストールされたかステータスの確認
$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Fri 2022-02-25 17:33:27 JST; 6s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 26327 (sshd)
Tasks: 1 (limit: 4915)
Memory: 1.1M
CGroup: /system.slice/ssh.service
└─26327 /usr/sbin/sshd -D
2月 25 17:33:27 ******* systemd[1]: Starting OpenBSD Secure Shell server...
2月 25 17:33:27 ******* sshd[26327]: Server listening on 0.0.0.0 port 22.
2月 25 17:33:27 ******* sshd[26327]: Server listening on :: port 22.
2月 25 17:33:27 ******* systemd[1]: Started OpenBSD Secure Shell server.
#👇ブート時にSSHサーバーが立ち上がるようにする
$ sudo systemctl enable ssh
$ sudo systemctl start ssh
これでSSHサーバーとして起動させておき、別のPCのクライアント端末からSSH接続させてみます。
$ ssh <接続先のユーザー名>@xxx.xxx.xxx.xxx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:*************************.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.xxx.xxx' (ECDSA) to the list of known hosts.
taconocat@xxx.xxx.xxx.xxx's password:
Linux ******** 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 (2021-12-08) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Nov 22 14:37:16 2019
>$
としてちゃんと接続できるようになりました。
SSH接続出来れば後はSSHサーバー機のGUI(グラフィカルユーザーインターフェース)でのアクセスは無駄になので、以下のコマンドでCUI(コマンドユーザーインターフェース)に切り替えておきます。
$ sudo systemctl set-default multi-user.target
なおCUIコマンドからデスクトップ環境を起動したい場合には、
$ startx
更にデフォルトのログインモードもGUIに戻す場合、
$ sudo systemctl set-default graphical.target
で柔軟に切り替えられることも覚えておきましょう。
Autologinの設定
SSHを接続させる場合、自動的にログインが掛からないのでSSHサーバーが起動待ちになっていて不便です。
電源を入れたときに
Debian系でAutologinさせる場合、
getty@tty1.service.d
autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin <ログインするユーザー名> --noclear %I 38400 linux
これで再起動後にオートログインが掛かります。
IPアドレスの固定
Debian 11 (bullseye)の環境をIP固定をしています。
$ ip addr
#👇コレがWiFiデバイス
3: wlx5ca6e685747b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ff:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.0.104/24 brd 192.168.0.255 scope global dynamic noprefixroute wlx5ca6e685747b
valid_lft 6437sec preferred_lft 6437sec
#...
ここで手元のWiFiのデバイス名が
wlx5ca6e685747b
wlx[12桁]
ということで、お手元で試される場合にはお持ちのデバイス名の固有名で適宜読み替えて設定してみてください。
それで肝心のWiFiの固定IPアドレスにする方法として、最も簡単なものは
まずはdhcpcdは標準ではインストールされていないデーモンツールですので、以下のようにDebianにパッケージインストールします。
$ sudo apt install -y dhcpcd5
インストール後に
/etc/dhcpcd.conf
ここでは固定するIPを
192.168.0.123
192.168.0.1
#...中略
#👇ファイルの末尾に追記
interface wlx5ca6e685747b
static ip_address=192.168.0.123/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
ここら辺は、お使いのWiFiルーターの仕様で設定する値が異なるので、お使いの製品の説明書などを良く読んでから設定してください。
ちなみに著者が動作テストに利用した手元のWiFiルーター・「
これでdhcpcdデーモンを起動時に立ち上がるようにサービスを登録しましょう。
$ sudo systemctl enable dhcpcd
これでPCを再起動後にIP値が変わっているか確認してみます。
$ ip addr
#👇コレがWiFiデバイス
3: wlx5ca6e685747b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ff:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.0.123/24 brd 192.168.0.255 scope global dynamic noprefixroute wlx5ca6e685747b
valid_lft 6437sec preferred_lft 6437sec
#...
ということでIP値が
192.168.0.123
なお比較としてラズパイでIP値を固定する場合には、
その他の設定〜SSHポートの設定
Debianの場合、以前じっくり説明させて貰った
ここではそちらの設定方法を参照して頂くとして、SSHのポート番号の割り振りに関しては、
参考サイト
まとめ
今回はDebian 11でもTL-WN725Nを使うためのドライバーの設定方法を解説してみました。
これでWiFiがメインの職場にもご家庭のインターネット環境でも場所を選ばずに古いPCをインターネット接続することが出来るようになりました。
TL-WN725Nは今でもかなり安価で手に入るので、とてもコストパフォーマンスの良いWiFiインターネット環境が整うと思います。