Ubuntu 20.04LTSにBaffalo WI-U3-866DのドライバをあてWifiを使えるようにする

経緯

2012年頃(?)なので10年前くらいに買ったタワーPCでごにょごにょしたく, Ubuntuを入れた.

このPC, 有線ボード + USB Wifiモジュールという構成で, WifiモジュールがWindowsにしか対応していないやつだった.

それをUbuntuで使えるようにしたい.

PCはきのこのネトゲをやるために購入し, 当時はADSLを引いてて遅延が嫌で有線のことしか考えていなかった. (今じゃ考えられないね)

その後引っ越しなどで無線が必要になり, PCショップでBaffalo WI-U3-866Dを買って使ってた.

どうでもいいけど, このドングルの定価が8,000円くらいで購入日の前日まで5,000円くらいに値引きされてて, レジにその旨伝えたら5,000円で買えたのはいい思い出.

環境

OS: Ubuntu20.04 使いたい機器: Baffalo WI-U3-866D

手順

Ubuntuをインストールする

手元にWindows機(デュアルブート)があったため, UbuntuのISOを落としてUSBメモリに焼いてインストール USBに焼くまではこのサイトなどを参考にした. (UEFIじゃなくBIOSですって!?) rtc-fukushima.jp なお, 後述するが, Ubuntuは標準インストールにしたほうがいいかも. ミニマルインストールでmakeが使えないとかうまくいかなくて結局標準インストールでやり直している.

ネットワークに繋ぐ

LANケーブルが手元になく, Wifiも使えないのでUbuntu on VirtualBox on WindowsとかMacでビルドして配布するとかやってたけど, うまくいかなくて挫折. そしたらAndroidのUSBテザリングなんてものがあるじゃないですか!? PCとAndroidをUSBで繋いで, Android側でUSBテザリングをタップすればOK.

WI-U3-866Dのドライバソースをダウンロード

WI-U3-866Dの中身はrtl8812auというRealtekのチップのようだ. よって, 以下のリポジトリからドライバソースをクローンする. 一緒にgitとdkms(後述)をインストールする github.com

sudo apt update
sudo apt install git dkms
git clone https://github.com/aircrack-ng/rtl8812au/ -b v5.13.6

Ubuntu 20.04のカーネルバージョンが5.13.0のようで, マイナーバージョンまで一致しているブランチを持ってきている. これで今の所うまくいった.

ビルド & dkms登録

ソースをビルドするがいくつかポイントがあった. まず, dkms. Dinamic Kernel Module Supportのことで, カーネルインストール時にドライバを自動でコンパイルしてくれるフレームワークのようで, こいつを使った あと, 本手順を実施するにあたって表には出てこないけど, /lib/modules/${uname -r}配下にドライバとかが置かれるみたい. Ubuntu20.04だと/lib/modules/5.13.0-30-genericだった.

cd rtl8812au/
sudo make dkms_install 

Makefileにdkms_installが実装されているのでそれを実行する 以下該当リポジトリMakefileの中身を抜粋してみてみた.

dkms_install:
    mkdir -p /usr/src/8812au-$(DRIVER_VERSION)
    cp -r * /usr/src/8812au-$(DRIVER_VERSION)
    dkms add -m 8812au -v $(DRIVER_VERSION)
    dkms build -m 8812au -v $(DRIVER_VERSION)
    dkms install -m 8812au -v $(DRIVER_VERSION)
    dkms status

/usr/srcにコピーしてdkmsのadd/build/installをする...まぁこれでカーネルインストールし直してもこのWifiモジュールが使えるのでしょう (たぶん

/etc/modulesに書き込む

echo 8812au | sudo tee -a /etc/modules

これで登録するようだ.

再起動

rebootするとWifi設定ページでSSID一覧が表示されるようになる.

所感

同じような人が多数いて情報には困らなかった. USBテザリングにもっと早く気づくべきだった. 他のマシンでビルドしようとして時間を溶かしてしまった.

作業していて新卒入社間もない頃の記憶が甦ってきた. Windowsしかいじってこなかった中Fedorasmtp/popとかnameサーバーをCLIで建てる業務があって, 泣きながらやってた. あんだけの時間をもらって色々やらせてもらえたのは本当に糧になっている.

Web系の開発をやっていてもクラウドLinux触るし, DNSとかロードバランサとかの知識があるとトラブル時の視野が広いし, TCP/IP, HTTP, TLSあたりは前職で使っていたので, この辺のトラブルと直面しても抵抗がないのはいいことだ.

参考リンク

cu-fe-lab.com

www.silex.jp

qiita.com