PLANEX GW-US54GXS

プラネックスの無線LAN USBアダプタ GW-US54GXSを買った。amazon.co.jpにて2,280円也。
CentOSで使えるように頑張ったメモ。
こやつはZyDAS ZD1211という無線LANコントローラーを搭載しているのだが、zd1211rw - Linux Wirelessによると、kernel 2.6.18 以降には zd1211rw というドライバモジュールが入っているらしいので、ftp.naist.lkams.kernel.orgより、linux-2.6.20.15.tar.bz2をダウンロード。
USBポートに接続してlsusb -vで確認すると、
$ lsusb -v
Bus 005 Device 008: ID **2019:5303**
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x2019
idProduct 0x5303
bcdDevice 48.10
iManufacturer 16 PCI
**iProduct** 32 **PCI GW-US54GXS**
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
:
:
:
という出力から、ベンダーIDとプロダクトIDが2019:5303である事がわかる。
でもってlinux-2.6.20.15/drivers/net/wireless/zd1211rw/zd_usb.cにベンダーIDとプロダクトIDを、linux-2.6.20.15/drivers/net/wireless/zd1211rw/zd_ieee80211.cには国別のエクストラチャンネルを追加。
$ cat linux-2.6.20.15-zd1211rw.patch
*** zd1211rw.orig/zd_usb.c 2007-07-07 13:52:58.000000000 +0900
--- zd1211rw/zd_usb.c 2007-07-25 10:50:00.000000000 +0900
***************
*** 58,63 ****
--- 58,64 ----
{ USB_DEVICE(0x079b, 0x0062), .driver_info = DEVICE_ZD1211B },
{ USB_DEVICE(0x1582, 0x6003), .driver_info = DEVICE_ZD1211B },
{ USB_DEVICE(0x050d, 0x705c), .driver_info = DEVICE_ZD1211B },
**+ { USB_DEVICE(0x2019, 0x5303), .driver_info = DEVICE_ZD1211B },**
/* "Driverless" devices that need ejecting */
{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
{}
*** zd1211rw.orig/zd_ieee80211.c 2007-07-07 13:52:58.000000000 +0900
--- zd1211rw/zd_ieee80211.c 2007-07-25 10:48:14.000000000 +0900
***************
*** 43,48 ****
--- 43,49 ----
* 1-13. The ZyDAS devices still use the old region code but are
* designed to allow the extra channel access in Japan. */
[ZD_REGDOMAIN_JAPAN_ADD] = { 1, 15},
**+ [0x49] = { 1, 15},**
};
const struct channel_range *zd_channel_range(u8 regdomain)
あとは、kernelオプションでUSB関係を有効にしてbuildすればよい。
/etc/modprobe.confには
alias eth1 zd1211rw
の一行を追加。
wpa_supplicantを使う場合、/etc/sysconfig/wpa_supplicantは
# wlan0 and wifi0
# INTERFACES="-iwlan0 -iwifi0"
INTERFACES="-i**eth1**"
# ndiswrapper and prism
# DRIVERS="-Dndiswrapper -Dprism"
#DRIVERS="-Dndiswrapper"
DRIVERS="-D**wext**"
となる。
ここで
# service wpa_supplicant restart
すれば OK だと思ったのだが、さにあらず。/var/log/messages を見ると
Jul 26 14:49:01 localhost kernel: ieee80211: 802.11 data/management/control stack, git-1.1.13
Jul 26 14:49:01 localhost kernel: ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
Jul 26 14:49:01 localhost kernel: usb 5-2: reset high speed USB device using ehci_hcd and address 6
Jul 26 14:49:01 localhost firmware_helper[3975]: **Loading of /lib/firmware/zd1211/zd1211b_ub for usb driver failed: No such file or directory**
Jul 26 14:49:01 localhost kernel: usb 5-2: Could not load firmware file zd1211/zd1211b_ub. Error number -2
Jul 26 14:49:01 localhost kernel: zd1211rw 5-2:1.0: couldn't load firmware. Error number -2
Jul 26 14:49:01 localhost kernel: usb 5-2: reset high speed USB device using ehci_hcd and address 6
Jul 26 14:49:02 localhost kernel: zd1211rw: probe of 5-2:1.0 failed with error -2
Jul 26 14:49:02 localhost kernel: usbcore: registered new interface driver zd1211rw
な具合で、**「firmwareがロードできない」**と仰せのようだ。
というわけで、最後にZD1211 USB WLAN Linux Driverからzd1211-firmwareをダウンロードし、/lib/firmware/zd1211/に展開してあげて万事OKだったという備忘録。(7月25日現在の最新版はzd1211-firmware 1.3)
またkernel最新版は7月25日現在2.6.22だが、2.6.22だとMADWIFIの 0.9.3 がビルドできなかったので、8月14日にリリースされた 0.9.3.2 を使って幸せになろう。
参照
プラネックスコミュニケーションズ http://www.planex.co.jp/
SourceForge.net: zd1211 http://zd1211.wiki.sourceforge.net/
- ZD1211 USB WLAN Linux Driver http://sourceforge.net/project/showfiles.php?group_id=129083
Linux Wireless http://www.linuxwireless.org/
WPA Supplicant http://hostap.epitest.fi/wpa_supplicant/