最近はUSBで接続する802.11ac対応の無線LAN子機が安くなっています。特にAmazonで発売されている DIZA100は通常でも1,700円程度で購入でき、安定して使うことができるため高評価となっています。
ただ一つの問題はドライバーがOSの標準で入っていないため、添付のCDからインストールする必要があります。最近はCDドライブがついていないPCも多いため、インストール方法に苦慮する人も多いのではないでしょうか(自分もそうでした)。
この手順ではインターネットからドライバをダウンロードし、コンパイルしてドライバとして使用できるまでをまとめたメモになります。
環境
- ハードウェア:Raspberry Pi (今回はRaspberry Pi3 MODEL Bを使用)
- 無線LANアダプタ: DIZA100
- OS: Raspbian Stretch
手順
デバイスの状況を確認する
無線LANアダプタを接続して、VendorID / ProductIDを確認します。
dmesgコマンド、またはlsusbコマンドで確認します。
$ dmesg
[ 2.081458] usb 1-1.4: new high-speed USB device number 4 using dwc_otg
[ 2.212208] usb 1-1.4: New USB device found, idVendor=0bda, idProduct=0811
[ 2.215075] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.217871] usb 1-1.4: Product: 802.11ac WLAN Adapter
[ 2.220601] usb 1-1.4: Manufacturer: Realtek
$ sudo lsusb -v
Bus 001 Device 004: ID 0bda:0811 Realtek Semiconductor Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0bda Realtek Semiconductor Corp.
idProduct 0x0811
bcdDevice 2.00
iManufacturer 1 Realtek
iProduct 2 802.11ac WLAN Adapter
(略)
VendorIDは0bda
, ProductIDは0811
ということがわかりました。
パッケージのインストール
$ sudo apt install git raspberrypi-kernel-headers make gcc
ソースのダウンロード
https://github.com/gnab/rtl8812au.git からダウンロードします。
以降の手順はREADME.mdと同等の手順になります。
$ git clone https://github.com/gnab/rtl8812au.git
$ cd rtl8812au
ビルド設定の変更
デフォルトではIntelのCPU用のドライバをビルドする設定となっていますので、Raspberry PiのCPU用に変更します。
diff --git a/Makefile b/Makefile
index 71d0660..55bce9c 100644
--- a/Makefile
+++ b/Makefile
@@ -50,13 +50,13 @@ CONFIG_EXT_CLK = n
CONFIG_FTP_PROTECT = n
CONFIG_WOWLAN = n
-CONFIG_PLATFORM_I386_PC = y
+CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
-CONFIG_PLATFORM_ARM_RPI = n
+CONFIG_PLATFORM_ARM_RPI = y
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n
CONFIG_PLATFORM_MIPS_AR9132 = n
ビルド
ビルドしてドライバ(8812au.ko)を作成します。
$ make
$ sudo insmod 8812au.ko
インストール
$ sudo cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
$ sudo depmod
認識結果の確認
再起動を行い、起動時にドライバが読み込まれていることを確認します。
今回使用したRaspberry Pi3 MODEL Bは内蔵のWiFi(wlan0)があるので、2台目のデバイスであるwlan1が存在することがわかります。
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether e8:4e:06:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
まとめ
本当はDKMSを使用してカーネルのバージョンアップに自動で追従する機能を使用するべきですが、とりあえず使うメモなので今回はここで終了です。