(2023/08/27追記)Wi-Fi6対応の無線LAN子機を3例目として追加しました。
(2022/11/2追記)急にWi-Fiにつながらなくなった場合の対処方法を「トラブルシューティング」の章に追記しました。
UbuntuなどのLinuxマシンでWi-Fi接続は意外とハマりやすく、困っている方も多いのではないでしょうか。
Windowsのインストールだと、たいていのWi-Fi機器を自動で認識してドライバを入れてくれるので、Wi-Fiにつないだ状態でインストール作業を進められますが、Linuxではそうはいきません。
メジャーなメーカーのWi-Fi子機なら自動でドライバをインストールしてくれるのかもしれませんが、私が使用した機器は自動認識してくれませんでした。
さらに、Linux対応を謳ったWi-Fi子機であっても、付属のCD-ROMに入っているLinux用ドライバがうまくコンパイルできないなどの問題はよくあります。(というかコンパイルできたことが無い)
Linuxユーザへの塩対応にはがっかりさせられます。
ドライバをコンパイルする必要があるというのもやっかいです。
Ubuntuのインストール自体は、他のPCで事前に作成したインストールメディアを使ってオフラインで行えますが、インストール直後はmake
もgit
も無い状態なので、これらをsudo apt install
(要ネット接続)でインストールする必要があります。
ネットにつなぎたいからWi-Fiのドライバをインストールしようとしているのに、そのビルド作業にネットから入手するツールが必要、という状態になります。orz
これの対策として、以下2つの方法のどちらかで解決できます。
- 有線LANを使用する
- オフラインのリポジトリを使う
自宅に有線LAN環境が無い方は、2番一択になります。
本記事では、上記2通りの方法を説明します。
なお、私が使用したWi-Fi子機を載せておきますので、どの機器を選べば良いかわからない方は、私と同じWi-Fi子機を使えば、同じ方法でネット接続できますので、商品リンクをご活用ください。
本記事の内容は以下4つの動画にも収めていますので、参考にしてください。
【1. 有線LANを使用する/1例目】
【1. 有線LANを使用する/2例目】
【1. 有線LANを使用する/3例目】
【2. オフラインのリポジトリを使う】
1. 有線LANを使用する
有線LANにつなげられる環境がある方は、本章の内容に従うのが簡単なので、おすすめです。
私が動作確認した3つのWi-Fi子機を紹介します。
私の環境でfast.comを利用して通信速度を比較した結果は以下です。
使用機器 | 通信規格 | セキュリティ規格 | 使用周波数帯 | 通信速度 |
---|---|---|---|---|
1例目 | IEEE802.11ac | WPA3 | 5GHz | 160Mbps |
2例目 | IEEE802.11n | WPA3 | 2.4GHz | 2.5Mbps |
3例目 | IEEE802.11ax | WPA3 | 5GHz | 220Mbps |
1例目、IEEE802.11ac(高速なので推奨)
動作したWi-Fi子機の1つ目は以下です。(1,600円代くらい)
アンテナが長いので電波もよく飛び、安定してネット接続できます。
wifi usb 1300Mbps USB3.0 無線lan 子機 2.4G/5G デュアルバンド 5dBi超高速通信 wifi 子機
CD-ROMが付属しており、Linuxのドライバが2種類入っていますが、どちらもコンパイルに失敗しました。(涙)
こちらのGitHubリポジトリからダウンロードしたドライバはコンパイル可能でWi-Fi接続まで無事にできました。
有線LANに接続し、Wi-Fi子機をUSB端子に接続して、以下のコマンドを実行します。
sudo apt update sudo apt install dkms build-essential git git clone https://github.com/RinCat/RTL88x2BU-Linux-Driver.git cd RTL88x2BU-Linux-Driver make sudo make install
上記を実行したら再起動し、メニューバーのWi-Fiマークから接続するWi-FiのSSIDを選択してパスワードを入力します。
アンインストールするにはRTL88x2BU-Linux-Driverディレクトリで以下のコマンドを実行します。
sudo make uninstall
アンインストール後も再起動が必要です。
2例目、IEEE802.11n(遅いので推奨しない)
動作したWi-Fi-子機の2つ目は以下です。(1,000円台くらい)
私の環境では、Wi-Fi親機が別の部屋にあるため、向きによっては接続が不安定なのと、やはり1例目に比べて通信が遅いです。
TP-Link TP-WN725N 無線LAN 子機 11n/11g/b デュアルモード対応モデル
こちらのGitHubリポジトリからダウンロードしたドライバはコンパイル可能でWi-Fi接続まで無事にできました。
有線LANに接続し、Wi-Fi子機をUSB端子に接続して、以下のコマンドを実行します。
sudo apt update sudo apt install dkms build-essential git git clone https://github.com/lwfinger/rtl8188eu.git cd rtl8188eu make sudo make install
上記を実行したら再起動し、メニューバーのWi-Fiマークから接続するWi-FiのSSIDを選択してパスワードを入力します。
アンインストールするにはrtl8188euディレクトリで以下のコマンドを実行します。
sudo make uninstall
アンインストール後も再起動が必要です。
3例目、IEEE802.11ax(高速なので推奨)
動作したWi-Fi-子機の3つ目は以下です。(4,000円くらい)
Wi-Fi6(IEEE802.11ax)かつセキュリティ規格WPA3で無線LAN接続できることを確認しました。
TOKAIZ 無線lan 子機 wifi6 usb 無線LANアダプター TWA-002
パッケージに記載されている技適番号(210-212834)から搭載されているRealtekのチップ名がRTL8832BUであることがわかり、Linux用のドライバを探し当てることができました。
この製品の対応OSはWindows 10/11のみとなっていますが、上記ドライバを使用することで、Linuxでも動作することが確認できました。
有線LANに接続し、Wi-Fi子機をUSB端子に接続して、以下のコマンドを実行します。
sudo apt update sudo apt install dkms build-essential git git clone https://github.com/morrownr/rtl8852bu cd rtl8852bu make sudo make install
上記を実行したら再起動し、メニューバーのWi-Fiマークから接続するWi-FiのSSIDを選択してパスワードを入力します。
正常にWi-Fi6(IEEE802.11.ax)としてつながっているかは、設定からは確認できなかったので、以下のコマンドで確認しました。
sudo lshw -C network
実行結果の最後にwireless=IEEE 802.11AX
と表示され、Wi-Fi6で通信できていることを確認できました。
アンインストールするにはrtl8188euディレクトリで以下のコマンドを実行します。
sudo make uninstall
アンインストール後も再起動が必要です。
その他の機器はどうするの?
こちらの記事にWi-Fi機器別の情報がありますので、ドライバの入手先が記載されているものは動作させられそうです。
以下のコマンドでWireless Network Adapterの機器名やRTL〜などの情報を得られる場合がありますので、ドライバ検索の助けになると思います。
lsusb
また、3例目に記載したように、技適検索サイトで技適番号を入れて技適資料を見つけられれば、基板の写真などからチップ名を特定できると思います。
「チップ名 linux driver」などと検索するとドライバを見つけられると思います。
2. オフラインのリポジトリを使う
有線LAN環境が無い方は、本章の手順になります。
この章では、前の章の1例目の機器のドライバをオフラインでインストールする方法を説明します。
事前準備
ネットに繋がっているWindows PCで、以下の記事の「WSL2 Ubuntu-20.04 LTSのインストール」の章を参考にWSL2を使用するための設定を行います。
Microsoft Storeにつなぎ、検索窓に”ubuntu”と入力すると、Ubuntu 20.04やUbuntu 22.04が見つかりますので、今回使用するものをインストールします。
ターミナル(PowerShell)を管理者で立ち上げ、vマークからUbuntuを選択、または、wsl
と入力してWSL2 Ubuntuを立ち上げます。
以下のコマンドを実行します。(WSL2 Ubuntuターミナルでの操作です)
sudo apt update sudo apt upgrade git clone https://gist.github.com/jeanlescure/084dd6113931ea5a0fd9 cd 084dd6113931ea5a0fd9 chmod +x *.sh sudo ./dependencies.sh mkdir /mnt/c/Users/USERNAME/archives ./getpkg.sh build-essential /mnt/c/Users/USERNAME/archives ./getpkg.sh dkms /mnt/c/Users/USERNAME/archives ./getpkg.sh git /mnt/c/Users/USERNAME/archives ./mkrepo.sh /mnt/c/Users/USERNAME/archives cd /mnt/c/Users/USERNAME git clone https://github.com/RinCat/RTL88x2BU-Linux-Driver.git
USBメモリを差し込み、エクスプローラを開いて、C:¥Users¥USERNAMEにあるarchivesフォルダとRTL88x2BU-Linux-DriverフォルダをUSBメモリにコピーします。
ネット未接続のUbuntuでの操作
こちらのサイトに従って作成したUbuntuのインストールメディアを使ってインストールしたPCに、上記で作成したUSBメモリを差し込みます。
「ファイル」を立ち上げ、USBメモリの内容を表示し、「・・・」をクリックして「端末で開く」をクリックします。
立ち上がったターミナルで以下のコマンドを実行して2つのディレクトリをコピーします。
cp -r archives RTL88x2BU-Linux-Driver ~ gunzip ~/archives/Packages.gz
viエディタで/etc/apt/sources.list
を編集します。
sudo vi /etc/apt/sources.list
viエディタの使い方がわからない方は以下の動画を参考にしてください。
sources.list
の最後に以下の1行を追加します。
deb [trusted=yes] file:/home/USERNAME/archives ./
USERNAMEの部分はお使いのユーザ名で置き換えてください。
以下のコマンドを実行して、ローカルのリポジトリ(/home/USERNAME/archives
)を利用して、build-essential, dkms, git
をインストールします。
sudo apt update sudo apt install build-essential dkms git
これがうまく行けば、make
等が使えるようになりますので、Wi-Fiドライバをビルドしてインストールします。
cd ~/RTL88x2BU-Linux-Driver make sudo make install
再起動します。
メニューバー右上の設定から、Wi-Fiを選択できるようになっていたら、使用するWi-FiのSSIDを選択し、パスワードを設定して接続します。
Wi-Fiに接続したら、Firefoxブラウザを立ち上げて、Google検索などが動作すればネット接続成功です。
ネット接続後は、sources.list
に追記した内容は不要になるので、削除するか以下のように行頭に#を付けてコメントにしておきます。
#deb [trusted=yes] file:/home/USERNAME/archives ./
アンインストールする場合は、以下のコマンドを実行します。
cd ~/RTL88x2BU-Linux-Driver make sudo make uninstall
トラブルシューティング
あるとき急にWi-Fiにつながらなくなった(1)
Linuxを使っていると、Wi-Fiにつながらなくなることが割とよくあります。
sudo apt update/upgrade後につながらなくなることがあるので、これに備えて、上記で使用したWi-Fiドライバのディレクトリは消さずに残しておきましょう。
今までWi-Fiにつながっていたのに、気づいたらメニューバーのWi-Fiマークが消えていて、インターネットにつながらないという場合、以下のようにWi-Fiドライバをアンインストール→再ビルド→インストールをまず試してみてください。
cd ~/RTL88x2BU-Linux-Driver sudo make uninstall make clean make sudo make install
再起動します。
ほとんどの場合、これで再びWi-Fiにつながるようになると思います。
以下の動画で上記の手順を実践しています。
あるとき急にWi-Fiにつながらなくなった(2)
上記(1)とは別の理由で急にWi-Fiにつながらなくなることがありました。
lsusb
コマンドで、Wi-Fi子機は認識されているし、以下のコマンドで接続可能なWi-Fi候補は表示される状態でした。
nmcli device wifi list
以下のコマンドでWi-Fiが有効になっているかを確認するとenabled
と表示され、有効になっていました。
nmcli radio wifi
しかし、メニューバーや設定にWi-Fiの設定が現れず、マウス操作では何もできない状態でした。
Wi-Fiルータが5GHz帯と2.4GHz帯の両方に対応していて、5GHz帯を使用していたものの、そちらの電波をキャッチできなくなって(2.4GHz帯の方が安定)、この状態になったと思われます。
この状況になった場合、以下の手順でWi-Fiに接続できるようになりましたので、同じ症状になった方はお試しください。
まず、以下のコマンドでWi-Fiを無効にします。
nmcli radio wifi off
PCを再起動し、以下のコマンドでWi-Fiを有効にします。
nmcli radio wifi on
これで、画面右上のメニューからWi-Fiの設定ができるようになり、2.4GHz帯の方に接続し直しました。
まとめ
Ubuntu Linuxの立ち上げでハマりがちなWi-Fiのセットアップ方法として、有線LANを使用する方法と、オフラインで行う方法の2通りを紹介しました。
オフラインでセットアップする方は、WSL2 Ubuntuを立ち上げるなど手順が煩雑ではありますが、有線LAN環境が無い場合の回避策になりますので、十分に試す価値があると思います。
私が動作確認した機器と同じものを使用すれば、有線LANまたはオフラインどちらかの方法でWi-Fiに接続できるようになりますので、迷ったら私が推奨する機器(下記)をお試しください。
wifi usb 1300Mbps USB3.0 無線lan 子機 2.4G/5G デュアルバンド 5dBi超高速通信 wifi 子機
TOKAIZ 無線lan 子機 wifi6 usb 無線LANアダプター TWA-002
Wi-Fiのセットアップがうまく行かず、悩んでいる方のお役に立てれば幸いです。
ものづくりに興味があり、いろいろ触り始めたらLinuxの知識が必要になって困っているという方向けに以下のページを作成しましたので、よろしければ参考にしてください。
書籍紹介
Linuxの基本的な使い方からシェルスクリプトを使ったプログラミング、Gitによるバージョン管理など、エンジニアが知っておくべき基本的な知識について解説してくれています。
参考文献
- GitHub: RinCat/RTL88x2BU-Linux-Driver(https://github.com/RinCat/RTL88x2BU-Linux-Driver)
- How to install RTL8188EUS driver on ubuntu 18.04(https://askubuntu.com/questions/1170202/how-to-install-rtl8188eus-driver-on-ubuntu-18-04)
- Ubuntu/Debian Offline Repository Creation Gist(https://gist.github.com/jeanlescure/084dd6113931ea5a0fd9)
- Linuxで無線LANが繋がらない時の対処法(https://endy-tech.hatenablog.jp/entry/linux_wireless_troubleshooting)
- TOKAIZ TWA-001をLinuxで使ってみた。(https://firtel.blogspot.com/2021/11/tokaiz-twa-001-rtl8811cu.html)