GW-US54GXSのために,zd1211rwを再コンパイルした.

概要

USB無線LAN子機 GW-US54GXSはそのままでは使えなかった.

モジュールのソースに変更を加え,コンパイルしなおしたら,使えた.

参考

Ubuntu日本語フォーラム / Ubuntu 9.10 でPLANEX GW-US54GXSが使えない

やったこと

zd1211rwに修正が必要.そこで,ソースを入手する.

% mkdir -p tmp/zd1211rw
% cd tmp
% cp -r /var/abs/core/kernel26 .
% cd kernel26
% makepkg -o
% cp src/linux-2.6.32/driver/net/wireless/zd1211rw/* ../zd1211rw
% cd zd1211rw

参考のurlにあるように,ソースを変更する.

zd_mac.c

{ ZD_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */
{ ZD_REGDOMAIN_JAPAN, "JP" },
{ ZD_REGDOMAIN_JAPAN_ADD, "JP" },
+    { ZD_REGDOMAIN_JAPAN_3, "JP" },
{ ZD_REGDOMAIN_SPAIN, "ES" },
{ ZD_REGDOMAIN_FRANCE, "FR" },
};

zd_mac.h

#define ZD_REGDOMAIN_FRANCE    0x32
#define ZD_REGDOMAIN_JAPAN_ADD    0x40
#define ZD_REGDOMAIN_JAPAN    0x41
+#define ZD_REGDOMAIN_JAPAN_3    0x49

これから,makeするので,

pacman -S kernel26-headers

としておく.

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    :=/usr/src/linux-$(shell uname -r)
PWD :=$(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean

makeして,コピーする.

% make all
% cd /lib/modules/2.6.32-ARCH/kernel/driver/net/wireless/zd1211rw
% sudo mv zd1211rw.ko zd1211rw.ko.original
% cd -
% sudo cp zd1211rw.ko /lib/modules/2.6.32-ARCH/kernel/driver/net/wireless/zd1211rw

再起動したら,ちゃんと使えた(kernel26-firmware必要).

めでたし,めでたし.

More Reading
Newer// pdf 見開き