Ubuntu LinuxのWi-Fi接続で困っている方へ * オフラインでもWi-Fiドライバをビルド/インストールできます

スポンサーリンク
Ubuntu WiFi Top

(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で事前に作成したインストールメディアを使ってオフラインで行えますが、インストール直後はmakegitも無い状態なので、これらをsudo apt install(要ネット接続)でインストールする必要があります。

ネットにつなぎたいからWi-Fiのドライバをインストールしようとしているのに、そのビルド作業にネットから入手するツールが必要、という状態になります。orz

これの対策として、以下2つの方法のどちらかで解決できます。

  1. 有線LANを使用する
  2. オフラインのリポジトリを使う

自宅に有線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.11acWPA35GHz160Mbps
2例目IEEE802.11nWPA32.4GHz2.5Mbps
3例目IEEE802.11axWPA35GHz220Mbps

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環境が無い方は、本章の手順になります。

ここでは、Windows PCをお持ちの方がオフラインリポジトリを作成する方法を紹介しますが、ネットワークにつながった別のUbuntu Linuxマシンがあれば、コマンド実行のところから同様にローカルリポジトリを作成することができます。

その場合、/mnt/c/Users/USERNAME/archivesなどのパスはWSL2向けなので、~/archivesなどに置き換えて実行してください。

この章では、前の章の1例目の機器のドライバをオフラインでインストールする方法を説明します。

事前準備

ネットに繋がっているWindows PCで、以下の記事の「WSL2 Ubuntu-20.04 LTSのインストール」の章を参考にWSL2を使用するための設定を行います。

Microsoft Storeにつなぎ、検索窓に”ubuntu”と入力すると、Ubuntu 20.04やUbuntu 22.04が見つかりますので、今回使用するものをインストールします。

上記の記事と同様に、wsl --install -d Ubuntu-〜 のコマンドでUbuntuをインストールしても良いですが、2022年10月現在、コマンドからだとUbuntu 22.04がインストールできませんでした。

ネットに繋がった別のUbuntu PCがある場合も同様に実行できます。

その場合、以降のコマンドのうち/mnt/c/Users/USERNAMEの部分を$HOMEで置き換えてください。

ターミナル(PowerShell)を管理者で立ち上げ、vマークからUbuntuを選択、または、wslと入力してWSL2 Ubuntuを立ち上げます。

Start wsl 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

USERNAMEの部分はお使いのユーザ名で置き換えてください。

getpkg.shを実行した際、「E: 候補が存在しないので、パッケージ 〜 の候補バージョンを選べません」というエラーが出ましたが、そのまま進めて問題ありませんでした。

USBメモリを差し込み、エクスプローラを開いて、C:¥Users¥USERNAMEにあるarchivesフォルダとRTL88x2BU-Linux-DriverフォルダをUSBメモリにコピーします。

ネット未接続のUbuntuでの操作

こちらのサイトに従って作成したUbuntuのインストールメディアを使ってインストールしたPCに、上記で作成したUSBメモリを差し込みます。

「ファイル」を立ち上げ、USBメモリの内容を表示し、「・・・」をクリックして「端末で開く」をクリックします。

File Manager

立ち上がったターミナルで以下のコマンドを実行して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の教科書

Linuxの基本的な使い方からシェルスクリプトを使ったプログラミング、Gitによるバージョン管理など、エンジニアが知っておくべき基本的な知識について解説してくれています。

参考文献

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