USB子機(USBドングル)を使ってUbuntu18.04でWifiを設定する方法


概要と動機

Ubuntuを使用する際に有線LAN環境を用意することができなかったため、仕方なくWifi環境を構築することになりました。
私の環境は、BUFFALO WI-U2-433DMSを使用していますが、どのUSB子機でも問題なく動作するはずです。
Ubuntu初心者にもわかりやすく書いてあるSiteがあまりなかったので、備忘録として残しておくことにしました。

Amazonへ




導入準備

まず、下記でパッケージの更新をします。
※パッケージの更新をしたくない場合は、実行しなくても大丈夫だと思います。

$ sudo apt update && sudo apt upgrade



次に、必要なパッケージをUbuntuにインストールします。

$ sudo apt install linux-headers-generic build-essential git




導入

ここでUSB子機(USBドングル)をPCに差します。
以下のコマンドで、今回導入するUSB wifiドングルのID情報を入手します。

$ lsusb

例えば、BUFFALO WI-U2-433DMSなら、0411:0242
Bus 001 Device 002: ID 0411:0242 BUFFALO INC. (formerly MelCo., Inc.)
等と表示されると思います。

次に、ソースをGitから入手します。

$ git clone https://github.com/gnab/rtl8812au.git

入手したソース『usb_inif.c』を開きます。
~/rtl8812au/os_dep/linux/usb_inif.c にあると思います。
ここで、自身の所有しているUSB子機のIDがusb_inif.cに書かれているかどうか確認します。
IDはWI-U2-433DMSならRTL8821です。
IDがなければ下記のように追記する。
追記する場所はドライバが列挙されている場所、WI-U2-433DMSならRTL8821を検索して、最後(そのへんならどこでも可)など。

{USB_DEVICE(0x0411, 0x0242),.driver_info = RTL8821}, /* Buffalo – WI-U2-433DMS */

ただし、今回導入したBUFFALO WI-U2-433DMSのID 0411:0242があるので、追記はしない。

{USB_DEVICE(0x0411, 0x0242),.driver_info = RTL8821}, /* BUFFALO - Edimax */

コメントの中身は気にしなくても大丈夫。

あとは、下記をコピペでターミナルに打てば、動作すると思います。

$ cd rtl8812au
$ sudo make
$ sudo insmod 8812au.ko
$ sudo cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
$ sudo depmod




dkmsで自動更新

dkmsを使用して、自動でカーネルを更新したい場合は、下記の設定もしておくと動作するようです。
ただし、私は使用しておりませんが。。

$ sudo dkms status
$ sudo cp rtl8812au /usr/src/rtl8812au-4.2.2
$ sudo apt-get install build-essential dkms
$ sudo dkms add -m rtl8812au -v 4.2.2
$ sudo dkms build -m rtl8812au -v 4.2.2
$ sudo dkms install -m rtl8812au -v 4.2.2
$ sudo dkms remove -m 8812au -v 4.2.2 --all