- 使えるようになったので作業メモ
- ただし、アドホックモードのみ。
- ドライバがマスターモードに対応していないのでアクセスポイントとして使うのはこの時点ではできない。
$ tail /var/log/messages
kernel: [ 2657.632023] usb 2-3: new high speed USB device using ehci_hcd and address 3
kernel: [ 2657.764809] usb 2-3: configuration
kernel: [ 2657.880013] usb 2-3: reset high speed USB device using ehci_hcd and address 3
kernel: [ 2658.015131] zd1211rw 2-3:1.0: phy1
kernel: [ 2658.025510] usb 2-3: firmware: requesting zd1211/zd1211b_ub
kernel: [ 2658.029815] usb 2-3: firmware: requesting zd1211/zd1211b_uphr
kernel: [ 2658.073844] zd1211rw 2-3:1.0: firmware version 4725
kernel: [ 2658.113848] zd1211rw 2-3:1.0: zd1211b chip 2019:5303 v4810 high 00-90-cc AL2230_RF pa0 ---N-
kernel: [ 2658.130708] usb 2-3: firmware: requesting zd1211/zd1211b_ub
kernel: [ 2658.132533] usb 2-3: firmware: requesting zd1211/zd1211b_uphr
$ lsusb | grep GW-US54GXS
Bus 002 Device 004: ID 2019:5303 PLANEX GW-US54GXS 802.11bg
$ iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
br0 no wireless extensions.
tap0 no wireless extensions.
virbr0 no wireless extensions.
wlan0 IEEE 802.11bg ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
> /etc/wpa_supplicant.conf
SIOCSIFFLAGS: Connection timed out
Could not set interface 'wlan0' UP
Failed to initialize driver interface
// 作業ディレクトリ作成、移動
$ mkdir tmp
$ cd !$
// ソース取得、該当部だけ展開
$ sudo aptitude build-dep linux-image-$(uname -r)
$ tar xvfj /usr/src/linux-source-2.6.32.tar.bz2 \
linux-source-2.6.32/drivers/net/wireless/zd1211rw/
$ cd linux-source-2.6.32/
// フォーラムのままのパッチでは通らないので(ちょっと変更されてるので)
// 専用のパッチを用意してみる。
$ cat gw-us54gxs-2_6_32.patch
diff -Naur a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
--- a/drivers/net/wireless/zd1211rw/zd_mac.c 2009-12-03 12:51:21.000000000 +0900
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c 2010-05-22 18:12:52.042173004 +0900
@@ -40,6 +40,7 @@
{ ZD_REGDOMAIN_FCC, "US" },
{ ZD_REGDOMAIN_IC, "CA" },
{ ZD_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */
+ { ZD_REGDOMAIN_JAPAN_3, "JP" },
{ ZD_REGDOMAIN_JAPAN, "JP" },
{ ZD_REGDOMAIN_JAPAN_ADD, "JP" },
{ ZD_REGDOMAIN_SPAIN, "ES" },
diff -Naur a/drivers/net/wireless/zd1211rw/zd_mac.h b/drivers/net/wireless/zd1211rw/zd_mac.h
--- a/drivers/net/wireless/zd1211rw/zd_mac.h 2009-12-03 12:51:21.000000000 +0900
+++ b/drivers/net/wireless/zd1211rw/zd_mac.h 2010-05-22 18:13:35.168237384 +0900
@@ -193,6 +193,7 @@
+#define ZD_REGDOMAIN_JAPAN_3 0x49
enum {
MIN_CHANNEL24 = 1,
// こんなかんじに配置
$ ls
drivers gw-us54gxs-2_6_32.patch
// パッチ適用
$ patch -p1 < gw-us54gxs-2_6_32.patch
patching file drivers/net/wireless/zd1211rw/zd_mac.c
patching file drivers/net/wireless/zd1211rw/zd_mac.h
// Makefileの変更
$ cd drivers/net/wireless/zd1211rw/
$ cp -a Makefile Makefile.o
$ cat Makefile
obj-$(CONFIG_ZD1211RW) += zd1211rw.o
zd1211rw-objs := zd_chip.o zd_mac.o \
zd_rf_al2230.o zd_rf_rf2959.o \
zd_rf_al7230b.o zd_rf_uw2453.o \
zd_rf.o zd_usb.o
KDIR :=/lib/modules/$(shell uname -r)/build
PWWD :=$(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
$ make
// 変更前にモジュールのバックアップを取っておく。
// さっきの作業ディレクトリへ
zd1211rw.ko
//
$ tail -F /var/log/messages
kernel: [ 4970.344015] usb 2-3: new high speed USB device using ehci_hcd and address 5
kernel: [ 4970.476825] usb 2-3: configuration
kernel: [ 4970.600015] usb 2-3: reset high speed USB device using ehci_hcd and address 5
kernel: [ 4970.733750] zd1211rw 2-3:1.0: phy3
kernel: [ 4970.733769] usbcore: registered new interface driver zd1211rw
kernel: [ 4970.746681] usb 2-3: firmware: requesting zd1211/zd1211b_ub
kernel: [ 4970.751855] usb 2-3: firmware: requesting zd1211/zd1211b_uphr
kernel: [ 4970.795729] zd1211rw 2-3:1.0: firmware version 4725
kernel: [ 4970.835734] zd1211rw 2-3:1.0: zd1211b chip 2019:5303 v4810 high 00-90-cc AL2230_RF pa0 ---N-
kernel: [ 4970.838111] cfg80211: Calling CRDA for country: JP
kernel: [ 4970.840086] cfg80211: Regulatory domain changed to country: JP
kernel: [ 4970.840089] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
kernel: [ 4970.840092] (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm)
kernel: [ 4970.840094] (2457000 KHz - 2482000 KHz @ 20000 KHz), (N/A, 2000 mBm)
kernel: [ 4970.840097] (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm)
kernel: [ 4970.840099] (4910000 KHz - 4930000 KHz @ 10000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.840101] (4910000 KHz - 4990000 KHz @ 40000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.840104] (4930000 KHz - 4950000 KHz @ 10000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.840106] (5030000 KHz - 5045000 KHz @ 10000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.840108] (5030000 KHz - 5090000 KHz @ 40000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.840111] (5050000 KHz - 5060000 KHz @ 10000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.840113] (5170000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
kernel: [ 4970.840115] (5250000 KHz - 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
kernel: [ 4970.840118] (5490000 KHz - 5710000 KHz @ 40000 KHz), (N/A, 2300 mBm)
kernel: [ 4970.860303] ADDRCONF(NETDEV_UP): wlan0: link is not ready
// うまくいっている?
WPS-AP-AVAILABLE
WPS-AP-AVAILABLE
^CCTRL-EVENT-TERMINATING - signal 2 received
// ネットワーク設定(この設定はあまり意味がないけれど・・・)
auto wlan0
iface wlan0 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
// 通信確認
スキャンされたアクセスポイントが表示される。
PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=0.028 ms
// down させると LED 消える。