YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2019-10-07 (月)


[一語一絵/IT系]

11acなLinux Wifi / 2015-05-19 (火)

LinuxなWifi環境に、802.11acな[External]PLANEXのGW-450D[External]ELECOMのWDC-433SU2MBKを動かす為のメモを追加。

製品名VID:PIDコントローラドライバ使用可否
GW-US54GXS2019:5303zd1211bzd1211rw
GW-USMicroN2019:ed14RT3070-×
GW-USWExtreme2019:ed17RTL8188CUSrtl8192cu
GW-US300MiniS2019:ab24RT2870rt2800usb
WLI-UC-GN0411:015dRT3070rt2800usb
WLI-UC-GNM0411:01a2RT8070rt2800usb
WLI-UC-GNM20411:01eeRT3070rt2800usb
WDC-433SU2M7392:b711MT7610Umt7650u
GW-450D2019:ab31MT7610Umt7650u
[External]PLANEXの無線LANアダプターにLinux用のドライバーがリリースされた!という記事を見つけたので、調べてみたところ[External]Raspberry Piで11ac無線LAN子機『GW-450D』を使うための設定方法を発見。[External]無線LAN USBアダプタ(開発者向け情報)によると[External]GW-450D[External]ELECOMのWDC-433SU2MBKは同じ[External]MediaTek[External]MT7610U USBという事なので、802.11acなところにもチャレンジする事に。

ちなみに[External]GW-450D KATANAもUSBデバイス情報は全く同じなので[External]GW-450Dのアンテナ強化版という事になるらしい。逆に[External]WDC-433SU2MBKと同じ5GHz専用の超小型版である[External]GW-450Sの方は"RTL8811AU"というのは意外だった。こちらは[External]PLANEX GW-450S 手裏剣を Ubuntu 14.04 で使用するが参考になりそうだ。

取り敢えず[External]UbuntuでELECOMのWi-FiアダプタWDC-433SU2Mを使うを参考にトライしてみたが、GW-450Dを認識して"ra0"インタフェースはできるものの一向にリンクアップする気配が無い。[External]Elecom WDC-433SU2Mで802.11acな通信を実現したのかわからないけどとりあえず動いたによると、大変残念な事に[External]MediaTek提供のMT7610U USBドライバx86-64非対応という事らしい。

しかし、[External]x86_64 Linux上でELECOM WDC-433SU2Mを用いて802.11acな通信を実現するによると、有志によるx86-64対応のforkが公開されているという事なので、https://bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.gitから入手し、下記の修正を適用して[External]Ubuntu 14.04.2 LTS (Trusty Tahr)のdesktop(AMD64)で動作させる事ができた。

diff --git a/Makefile b/Makefile
index 25d87aa..72eab8e 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ endif
# rt8592(for rt85592), mt7650e, mt7630e, mt7610e, mt7650u, mt7630u, mt7610u

ifeq ($(CHIPSET),)
-CHIPSET = mt7610u
+CHIPSET = mt7650u mt7630u mt7610u
endif

MODULE = $(word 1, $(CHIPSET))
@@ -195,8 +195,10 @@ CROSS_COMPILE = mips-wrs-linux-gnu-
endif

ifeq ($(PLATFORM),PC)
+# Linux 3.x
+LINUX_SRC = /usr/src/linux-headers-$(shell uname -r)
# Linux 2.6
-LINUX_SRC = /lib/modules/$(shell uname -r)/build
+# LINUX_SRC = /lib/modules/$(shell uname -r)/build
# Linux 2.4 Change to your local setting
#LINUX_SRC = /usr/src/linux-2.4
LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
diff --git a/common/rtusb_dev_id.c b/common/rtusb_dev_id.c
index 061362a..2fcab21 100644
--- a/common/rtusb_dev_id.c
+++ b/common/rtusb_dev_id.c
@@ -38,6 +38,8 @@ USB_DEVICE_ID rtusb_dev_id[] = {
#ifdef MT76x0
        {USB_DEVICE(0x148F,0x7610)}, /* MT7610U */
        {USB_DEVICE(0x13B1,0x003E)}, /* MT7610U */
+    {USB_DEVICE(0x7392,0xb711)}, /* ELECOM WDC-433SU2M */
+    {USB_DEVICE(0x2019,0xAB31)}, /* PLANEX GW-450D/KATANA */
        {USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7630, 0xff, 0x2, 0xff)}, /* MT7630U */
        {USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7650, 0xff, 0x2, 0xff)}, /* MT7650U */
#endif
diff --git a/conf/RT2870STA.dat b/conf/RT2870STA.dat
index 0240bd5..172df59 100644
--- a/conf/RT2870STA.dat
+++ b/conf/RT2870STA.dat
@@ -1,12 +1,12 @@
#The word of "Default" must not be removed
Default
-CountryRegion=5
-CountryRegionABand=7
-CountryCode=
+CountryRegion=1
+CountryRegionABand=1
+CountryCode=JP
ChannelGeography=1
-SSID=11n-AP
+SSID=
NetworkType=Infra
-WirelessMode=8
+WirelessMode=14
EfuseBufferMode=0
Channel=0
BeaconPeriod=100
build手順は以下の通り。
yano@T60:~$ git clone https://bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.git
yano@T60:~$ cd ~/mediatek_mt7610u_sta_driver_linux-64bit
yano@T60:~/mediatek_mt7610u_sta_driver_linux-64bit$ ~~ 上記差分の適用 ~~
yano@T60:~/mediatek_mt7610u_sta_driver_linux-64bit$ make
yano@T60:~/mediatek_mt7610u_sta_driver_linux-64bit$ sudo make install
[External]PLANEXのGW-450Dを差してみたところ、
yano@T60:~$ lsmod | grep mt7650u_sta
mt7650u_sta           145174  0
yano@T60:~$ iwconfig ra0
ra0       Ralink STA  ESSID:"1F11a-TESTWIFI"  Nickname:"MT7610U_STA"
          Mode:Managed  Frequency=5.22 GHz  Access Point: 00:22:CF:E3:26:39
          Bit Rate=433.5 Mb/s
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-56 dBm  Noise level:-92 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

yano@T60:~$
…という事でmt7650u_staドライバがロードされて"ra0"インタフェースができていれば良い。リンク速度は"433.5 Mb/s"と11acなりに動いてるらしい事はわかったので、試しに"WirelessMode=9"で11g/nにしてやり直したところ、
yano@T60:~$ iwconfig ra0
ra0       Ralink STA  ESSID:"1F11b-TESTWIFI"  Nickname:"MT7610U_STA"
          Mode:Managed  Frequency=2.457 GHz  Access Point: 00:22:CF:E3:26:36
          Bit Rate=135 Mb/s
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-32 dBm  Noise level:-68 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

yano@T60:~$
…という事でリンク速度は"135 Mb/s"となったものの、どちらのモードでもiperfで70~90Mbps程度のスループットとなった。

[External]ELECOMのWDC-433SU2MBKも差し替えただけで11acなリンク速度"433.5 Mb/s"で接続し、iperfで90Mbps以下、と[External]PLANEXのGW-450Dと同等であった。

ただ昨年1月のWDC-433SU2MBK導入時に測定した145~157Mbpsよりも随分残念な感じかな…と思ったのだが、前回は2010年製Core i7-640LM(2.0→2.8GHz)のThikPad X201sだったのに対して今回は2006年製Intel Core Duo T2500(2GHz)搭載のThikPad T60だったのでそもそもの性能が違う事から、ThikPad T60Windows XPでも試したところ[External]ELECOMのWDC-433SU2MBKで50~60Mbps、[External]PLANEXのGW-450Dで30~40Mbpsだったので、どちらかというと70Mbps以上出したLinux版ドライバの方が頑張ってるという事になりそうだ。

いずれもpingで時折秒オーダの遅延が発生していたのがちょっと気になるのだが…

【参照】
●Ubuntu日本語フォーラム https://forums.ubuntulinux.jp/
PLANEXの無線LANアダプターにLinux用のドライバーがリリースされた! 2013/11/18
●プラネックス http://www.planex.co.jp/
カッ飛び! 11ac/n/a/g/b 433Mbps USB2.0対応無線LAN子機 GW-450D
無線LAN USBアダプタ(開発者向け情報)
Raspberry Piで11ac無線LAN子機『GW-450D』を使うための設定方法
●WikiDevi https://wikidevi.com/wiki/
Elecom WDC-433SU2M
Planex GW-450D
●パリッと行こう! http://paritparit.blogspot.com/
Planex GW-450Dをlinuxで使う 2013/08/21
●カメノドットコム http://kame-no.com/
GW-450D KATANA を Debian で使ってみる
●どせいけいさんき。 http://xr0038tech.hatenadiary.jp/
PLANEX GW-450S 手裏剣を Ubuntu 14.04 で使用する 2015/01/30
●Gunlance Network http://www.aozorawaon.com/
UbuntuでELECOMのWi-FiアダプタWDC-433SU2Mを使う 2015/02/15
DKMSでドライバを自動ビルドする 2015/02/28
●テクニカルプア http://nosada.hatenablog.com/
Elecom WDC-433SU2Mで802.11acな通信を実現したかった 2014/05/31
Elecom WDC-433SU2Mで802.11acな通信を実現したのかわからないけどとりあえず動いた 2015/03/08 追記
●grafi.jp http://grafi.jp/
x86_64 Linux上でELECOM WDC-433SU2Mを用いて802.11acな通信を実現する 2015/03/10
●Git and Mercurial code management for teams https://bitbucket.org/
sanrath / MediaTek_mt7610u_STA_driver_Linux 64bit
●Amazon.co.jp https://www.amazon.co.jp/
ELECOM 無線LANアダプタ 433Mbps 11ac ブラック WDC-433SU2MBK 1,745円
【Amazon.co.jp限定】PLANEX 無線LAN子機 (USBアダプター型) 小型モデル 11ac/n/a/g/b 433Mbps MacOS X10.10対応 FFP-450D (FFP) 1,694円