
Ubuntu日本語フォーラム
ログインしていません。
Ubuntu 9.10 でUSBタイプの無線LAN子機PLANEX GW-US54GXSが使えない。
Ubuntu 9.04 では使えていた。
常用していないのでアップデートで使えるようになるまで放置していたところ、当フォーラムで使えたという書き込みがあるのでパッケージを最新にしたが使えない、リポジトリにbackportsとproposedも追加してみたが使えない。
パッケージ配布サーバーから最新のカーネル2.6.32-9-genericをダウンロードしてインストールしたが使えない。
アップデートが期待できないのでカーネルソースにパッチを当てドライバzd1211rwをリビルドしました。
--手順--
1.カーネルをリビルドできる環境を整える。
sudo aptitude build-dep linux-image-$(uname -r)
2.カーネルソースを入手。
sudo aptitude install linux-source
3.カーネルソースの展開。
/usr/src/にlinux-source-2.6.31.tar.bz2ができているので
sudo tar jxvf linux-source-2.6.31.tar.bz2
4.カーネルソースにパッチを当てる。
2ヶ所だけなので下記の操作が面倒であればエディタで該当個所を変更してもいいです。
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index 6d66635..b0d32c4 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -42,6 +42,7 @@ static struct zd_reg_alpha2_map reg_alpha2_map[] = {
{ 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" },
};
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.h b/drivers/net/wireless/zd1211rw/zd_mac.h
index 7c27591..9701935 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.h
+++ b/drivers/net/wireless/zd1211rw/zd_mac.h
@@ -193,6 +193,7 @@ struct zd_mac {
#define ZD_REGDOMAIN_FRANCE 0x32
#define ZD_REGDOMAIN_JAPAN_ADD 0x40
#define ZD_REGDOMAIN_JAPAN 0x41
+#define ZD_REGDOMAIN_JAPAN_3 0x49
enum {
MIN_CHANNEL24 = 1,
上記のパッチをファイル名zd1211rw_2.6.31_patchで/usr/src/に保存。
cd /usr/src/linux-source-2.6.31
sudo patch -p1 < ../zd1211rw_2.6.31_patch
5.リビルド
カーネルごとリビルドする時は以下不要。
私の環境ではカーネルのリビルドは数時間かかりますので、zd1211rwだけのリビルドをしました。
/usr/src/linux-source-2.6.31/drivers/net/wireless/zd1211rw/以下の全てのファイルを適当な作業ディレクトリにコピーします。
mkdir ~/zd1211rw
cp /usr/src/linux-source-2.6.31/drivers/net/wireless/zd1211rw/* ~/zd1211rw
~/zd1211rw/Makefileの変更
obj-m += 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
PWD := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
上記を~/zd1211rw/Makefileで保存。
ディレクトリ~/zd1211rwでmakeすればzd1211rw.koができるので、/lib/modules/2.6.31-16-geniric/...にコピー
cd ~/zd1211rw
make
sudo cp zd1211rw.ko /lib/modules/2.6.31.-16-generic/kernel/drivers/net/wireless/zd1211rw/
sudo depmod -a
古いドライバがロードされている時は、
sudo rmmod zd1211rw
後、子機をUSBに挿して以下の様なdmesgの結果が得られれば完了。
[ 4856.236027] usb 1-7: new high speed USB device using ehci_hcd and address 3
[ 4856.369736] usb 1-7: configuration #1 chosen from 1 choice
[ 4856.504033] usb 1-7: reset high speed USB device using ehci_hcd and address 3
[ 4856.655435] phy0: Selected rate control algorithm 'minstrel'
[ 4856.656859] zd1211rw 1-7:1.0: phy0
[ 4856.656898] usbcore: registered new interface driver zd1211rw
[ 4856.711621] udev: renamed network interface wlan0 to wlan1
[ 4856.723606] usb 1-7: firmware: requesting zd1211/zd1211b_ub
[ 4856.784058] usb 1-7: firmware: requesting zd1211/zd1211b_uphr
[ 4856.832943] zd1211rw 1-7:1.0: firmware version 4725
[ 4856.872953] zd1211rw 1-7:1.0: zd1211b chip 2019:5303 v4810 high 00-22-cf AL2230_RF pa0 ---N-
[ 4856.876448] cfg80211: Calling CRDA for country: JP
[ 4856.880650] cfg80211: Regulatory domain changed to country: JP
[ 4856.880657] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 4856.880664] (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[ 4856.880669] (2457000 KHz - 2482000 KHz @ 20000 KHz), (N/A, 2000 mBm)
[ 4856.880675] (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm)
[ 4856.880680] (4910000 KHz - 4930000 KHz @ 10000 KHz), (N/A, 2300 mBm)
[ 4856.880685] (4910000 KHz - 4990000 KHz @ 40000 KHz), (N/A, 2300 mBm)
[ 4856.880690] (4930000 KHz - 4950000 KHz @ 10000 KHz), (N/A, 2300 mBm)
[ 4856.880695] (5030000 KHz - 5045000 KHz @ 10000 KHz), (N/A, 2300 mBm)
[ 4856.880700] (5030000 KHz - 5090000 KHz @ 40000 KHz), (N/A, 2300 mBm)
[ 4856.880706] (5050000 KHz - 5060000 KHz @ 10000 KHz), (N/A, 2300 mBm)
[ 4856.880711] (5170000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[ 4856.880716] (5250000 KHz - 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[ 4856.880721] (5490000 KHz - 5710000 KHz @ 40000 KHz), (N/A, 2300 mBm)
[ 4856.898377] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 4863.727956] wlan1: authenticate with AP 01:0d:02:91:ac:5c
[ 4863.730330] wlan1: authenticated
[ 4863.730336] wlan1: associate with AP 02:0d:02:91:ac:6c
[ 4863.732578] wlan1: RX AssocResp from 03:0d:02:91:ac:7c (capab=0x411 status=0 aid=1)
[ 4863.732584] wlan1: associated
[ 4863.733751] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
正攻法かどうかは分かりませんが子機は使えるようになりました。
--以上--
オフライン
5.リビルド において、
make をしたところ、 make: `all' に対して行うべき事はありません.
というメッセージがでてしまいます。
よろしければ教えていただけないでしょうか。
オフライン
たぶん下記が原因でしょう。
---Makefile---
$(MAKE) -C $(KDIR) M=$(PWD) modules
^^^ <--ここは空白文字ではなくタブ文字(Tabキーで入力)です。
make後の下記の2行の操作を含めたMakefileを作りましたのでこちらを使って下さい。
sudo cp zd1211rw.ko /lib/modules/2.6.31.-16-generic/kernel/drivers/net/wireless/zd1211rw/
sudo depmod -a
コマンドはmake後sudo make installです。
2.6.31-17-genericで確認済みです。
---Makefile(New)---
obj-m += 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
PWD := $(shell pwd)
MDIR :=/lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/zd1211rw/
MNAME :=zd1211rw.ko
MNAME_BK :=zd1211rw.ko_backup
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
install:
mv $(MDIR)$(MNAME) $(MDIR)$(MNAME_BK)
cp $(PWD)/$(MNAME) $(MDIR)
depmod -a $(shell uname -r)
uninstall:
mv $(MDIR)$(MNAME_BK) $(MDIR)$(MNAME)
depmod -a $(shell uname -r)
オフライン
jackalope 様
成果報告です。私の実験用マシンでもできました。青いLEDがパカパカと点滅しております。有難うございました。
オフライン
カーネルがアップデートされたので違う方法でやってみました。
手順:
1.sudo mv /lib/modules/2.6.31-20-generic/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko /lib/modules/2.6.31-20-generic/kernel/drivers/net/wireless/zd1211rw/zd1211rw.bak
2.mkdir ~/linux
3.cd ~/linux
4.apt-get source linux-image-$(uname -r)
5.zd_mac.cとzd_mac.hを変更
6.make -C /lib/modules/$(uname -r)/build M=$(pwd)/linux-2.6.31/drivers/net/wireless/zd1211rw module && sudo make -C /lib/modules/$(uname -r)/build M=$(pwd)/linux-2.6.31/drivers/net/wireless/zd1211rw modules_install
makeをやり直すときは、make -C /lib/modules/$(uname -r)/build M=$(pwd)/linux-2.6.31/drivers/net/wireless/zd1211rw cleanを実行してからmakeします。
オフライン
こんにちは。初心者ですのでご教示頂けませんでしょうか。
> 5.zd_mac.cとzd_mac.hを変更
は、どのようなコマンドを入力したらよろしいでしょうか?
お願い致します。
オフライン
#1の「4.カーネルソースにパッチを当てる。」を参考にして貴方のお好きなテキストエディタでファイルを編集してください。
@@の後の数字が変更する箇所の行数で、行頭に+が付いている行が追加する内容です。
オフライン
6.make において、下記のメッセージがでてしまいます。
よろしければ教えていただけないでしょうか。
----------ここから----------
toshio@toshio-desktop:~/linux$ make -C /lib/modules/$(uname -r)/build M=$(pwd)/linux-2.6.32/drivers/net/wireless/zd1211rw module && sudo make -C /lib/modules/$(uname -r)/build M=$(pwd)/linux-2.6.32/drivers/net/wireless/zd1211rw modules_install
make: ディレクトリ `/usr/src/linux-headers-2.6.32-21-generic' に入ります
make: *** ターゲット `module' を make するルールがありません. 中止.
make: ディレクトリ `/usr/src/linux-headers-2.6.32-21-generic' から出ます
----------ここまで----------
現在、ubuntu10.4で奮闘中です。
オフライン
すみません、本日06:05:53上記投稿は私の早とちりでした。
#1の投稿にあった方法で現在試行中です。
話は変わりますが、バージョンアップした段階での無線LANが使えない状況では、カーネルソースは他のPCから
USBメモリ等でもってくるしか方法はないのでしょうか。
オフライン
makeのエラーは、make -C /lib/modules/$(uname -r)/build M=$(pwd)/linux-2.6.32/drivers/net/wireless/zd1211rw module && ...
^^^^^ <---modulesの間違い。
カーネルソースの件は試したことはありませんが古いソースでもいいと思います。
オフライン
素晴らしいです!
ubuntu 10.04 LTS 正式版でも上記の方法で接続出来ました!
ありがとうございます!!
オフライン
おぉ~~!
自分も上記の方法でできました。ubuntu10.04LTS(64bit)です。
ありがとうございます。
オフライン
10.04 LTS にて上記方法にて試行した結果,青いランプはつくもののデバイスを認識してない模様. 当初は青いランプすら点灯しなかったので進歩ではあるが・・・.
オフライン
私も、ubuntu10.04で、PLANEX GW-US54GXSが使えるようになりました。ありがとうございます。
jackalope さんほか、皆様のおかげです。重ねて、お礼申し上げます。
さて、一点だけ、質問させてください。ubuntu9.04の時は、電波強度を示すアンテナが、ほとんどいつも、
3本立っていましたが、今は、いつも1本しか立っていません。
ちょっと気になるのですが、私に何かできることがありますでしょうか?
オフライン
この方法でUbuntu10.10でもGW-US54GXSが利用可能になりました!
オフライン