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

スポンサーリンク
Ubuntu WiFi Top

(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子機を使えば、同じ方法でネット接続できますので、商品リンクをご活用ください。

本記事の内容は以下3つの動画にも収めていますので、参考にしてください。

【1. 有線LANを使用する/1例目】

【1. 有線LANを使用する/2例目】

【2. オフラインのリポジトリを使う】

1. 有線LANを使用する

有線LANにつなげられる環境がある方は、本章の内容に従うのが簡単なので、おすすめです。

私が試した2つのWi-Fi子機での方法を紹介します。

1例目、IEEE802.11ac対応1300Mbps(高速なので推奨)

動作した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 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対応150Mbps(遅いので推奨しない)

動作した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 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

アンインストール後も再起動が必要です。

その他の機器はどうするの?

こちらの記事にWi-Fi機器別の情報がありますので、ドライバの入手先が記載されているものは動作させられそうです。

以下のコマンドでWireless Network Adapterの機器名やRTL〜などの情報を得られる場合がありますので、ドライバ検索の助けになると思います。

lsusb

2. オフラインのリポジトリを使う

有線LAN環境が無い方は、本章の手順になります。

この章では、前の章の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)

上記の有線LANを使う方法やオフラインでビルド・インストールする方法でWi-Fiに接続できていたのに、あるとき急に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帯の方に接続し直しました。

あるとき急にWi-Fiにつながらなくなった(2)

上記(1)とは異なる状態でWi-Fiにつながらなくなることがありました。

lsusbではWi-Fi子機が見えていて、nmcli device wifi listでは何も表示されない状態。

前記1例目のWi-Fi子機ではつながらず、試しに2例目のWi-Fi子機を差してみると不思議なことにWi-Fi接続できました(2例目用のドライバはインストールしていないにも関わらず)。

有線LANに接続、または2例目のWi-Fi子機でネットに接続した状態で下記の各種アップデートコマンドを実行します。

sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt dist-upgrade

このあと、Wi-Fiドライバをアンインストール→再ビルド→インストールします。

cd ~/RTL88x2BU-Linux-Driver
sudo make uninstall
make clean
make
sudo make install

再起動します。

これで再びWi-Fiにつながるようになりました。

上記コマンドのうち、どれが効いたのか不明ですが、恐らくsudo apt dist-upgradeしてからWi-Fiドライバを再ビルドするのがポイントのように思います。

しかし、LinuxのWi-Fiは色々ハマるなぁ・・・

まとめ

Ubuntu Linuxの立ち上げでハマりがちなWi-Fiのセットアップ方法として、有線LANを使用する方法と、オフラインで行う方法の2通りを紹介しました。

オフラインでセットアップする方は、WSL2 Ubuntuを立ち上げるなど手順が煩雑ではありますが、有線LAN環境が無い場合の回避策になりますので、十分に試す価値があると思います。

私が動作確認した機器と同じものを使用すれば、有線LANまたはオフラインどちらかの方法でWi-Fiに接続できるようになりますので、迷ったら私が推奨する機器(下記)をお試しください。

wifi usb 1300Mbps USB3.0 無線lan 子機 2.4G/5G デュアルバンド 5dBi超高速通信 wifi 子機

Wi-Fiのセットアップがうまく行かず、悩んでいる方のお役に立てれば幸いです。

書籍紹介

新しいLinuxの教科書

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

参考文献

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