Raspberry Pi 2でWiFiドングル BUFFALO WI-U2-433DMを使う
Raspbian jessi, kernel 4.1.10-v7+ を使っています。
WI-U2-433DM エアステーション 11ac/n/a/g/b 433/150Mbps USB2.0用 無線LAN子機 : Wi-Fiアダプター | バッファロー
このWiFiドングルのチップはrtl8811auで、そのドライバは以下のサイトから入手できます。
https://github.com/gnab/rtl8812au
$ git clone https://github.com/gnab/rtl8812au.git $ cd rtl8812au
クロスコンパイルするために以下のようにMakefileを変更します。
diff --git a/Makefile b/Makefile index b79a7d8..564efd8 100644 --- a/Makefile +++ b/Makefile @@ -49,13 +49,14 @@ 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_CROSS = y CONFIG_PLATFORM_MIPS_RMI = n CONFIG_PLATFORM_RTD2880B = n CONFIG_PLATFORM_MIPS_AR9132 = n @@ -738,6 +739,15 @@ KSRC ?= /lib/modules/$(KVER)/build MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ endif +ifeq ($(CONFIG_PLATFORM_ARM_RPI_CROSS), y) +EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN +ARCH := arm +CROSS_COMPILE := arm-linux-gnueabihf- +KVER := 4.1.10-v7+ +KSRC ?= $(HOME)/work/raspi/linux +MODDESTDIR := +endif + ifeq ($(CONFIG_PLATFORM_RTD2880B), y) EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN -DCONFIG_PLATFORM_RTD2880B ARCH:=
make してできた8812au.ko をRaspberry Pi 2 の /lib/modules/4.1.10-v7+/ にコピーし、
$ sudo depmod
を実行して、モジュールの依存関係を更新します。
WiFiアクセスポイントの登録はRaspberry Pi 2でWiFiを使う - 組み込みの人。の通り。
BUFFALO WI-U2-433DMを挿したときのカーネルログは以下の通り。
[ 160.521582] usb 1-1.5: new high-speed USB device number 4 using dwc_otg [ 160.622988] usb 1-1.5: New USB device found, idVendor=0411, idProduct=0242 [ 160.623017] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 160.623035] usb 1-1.5: Product: 802.11ac WLAN Adapter [ 160.623051] usb 1-1.5: Manufacturer: Realtek [ 160.623068] usb 1-1.5: SerialNumber: 00e04c000001 [ 161.213418] usbcore: registered new interface driver rtl8812au [ 161.747741] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 162.416979] RTL871X: set bssid:00:00:00:00:00:00 [ 162.418093] RTL871X: set ssid [g\xffffffc6isQ\xffffffffJ\xffffffec)ͺ\xffffffab\xfffffff2\xfffffffb\xffffffe3F|\xffffffc2T\xfffffff8xffffffe8\xffffffe7\xffffff8dvZ.c3\xffffff9fɚ ] fw_state=0x00000008 [ 165.718720] RTL871X: set ssid [0024A52FB295] fw_state=0x00000008 [ 165.718911] RTL871X: set bssid:00:24:a5:2f:b2:95 [ 165.950915] RTL871X: start auth [ 165.960182] RTL871X: auth success, start assoc [ 165.967813] RTL871X: assoc success [ 165.969984] UpdateHalRAMask8812A => mac_id:0, networkType:0x0b, mask:0x000fffff ==> rssi_level:0, rate_bitmap:0x000ff005 [ 165.993282] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 166.090729] RTL871X: send eapol packet [ 166.149026] RTL871X: send eapol packet [ 166.157988] RTL871X: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:4 [ 166.158044] RTL871X: set group key to hw: alg:2(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2 [ 171.744734] UpdateHalRAMask8812A => mac_id:0, networkType:0x0b, mask:0x000fffff ==> rssi_level:1, rate_bitmap:0x000f0000
接続して使用可能になりました。
関連
Raspberry Pi 2でWiFiを使う - 組み込みの人。
Raspberry Pi 2のカーネルをビルドしてみた - 組み込みの人。