プラネックスの無線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="-ieth1"
# ndiswrapper and prism
# DRIVERS="-Dndiswrapper -Dprism"
#DRIVERS="-Dndiswrapper"
DRIVERS="-Dwext"
となる。
ここで
# 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/
┗Mac OSにも対応!薄型・軽量の無線LAN USBアダプタ:PLANEX:GW-US54GXS
●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/
┗zd1211rw http://www.linuxwireless.org/en/users/Drivers/zd1211rw
●WPA Supplicant http://hostap.epitest.fi/wpa_supplicant/