プラネックスの無線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すればよい。