2009年8月19日水曜日

Ubuntu で Buffalo WLI-UC-G を動かす

Ubuntu 9.04 で Buffalo WLI-UC-G を動かそうと格闘したときのメモです。
結果的に、動くには動いたのですが、何が効いたのか、わからない状態です。

■ rt73-cvs ドライバをダウンロードします。

WLI-UC-G は rt73 ドライバで動作するようです。
以下のサイトから rt73-cvs-daily.tar.gz をダウンロードします。
http://rt2x00.serialmonkey.com/wiki/index.php/Main_Page
http://sourceforge.net/projects/rt2400/

■ rt73-cvs-daily.tar.gz を展開します。

$ tar zxvf rt73-cvs-daily.tar.gz

■ rtmp_def.h を編集します。

$ cd rt73-cvs-2009041204/Module/
$ cp rtmp_def.h rtmp_def.h-org

$ vi rtmp_def.h
(下記の場所にデバイス ID 0x0411, 0x0137 の設定を追加します)
/* Buffalo */\
 {USB_DEVICE(0x0411,0x00d8)},   /* WLI-US-SG54HP */\
 {USB_DEVICE(0x0411,0x00f4)},\
 {USB_DEVICE(0x0411,0x0137)},   /* WLI-UC-G */\

■ make して、インストールします。

$ make
# make install

■ 再起動して、動作するか確認してみます。

私の環境では、WEP 系のアクセスポイントしか設定できない状態でした。
自宅で使っている WPA 系は設定できないので、さらに格闘。

■ 以下、参考情報です。

・関係ないと思いつつ、apt-get で rt73-common をインストール
→ ダメ

# apt-get install  rt73-common

・それじゃ、kernel 付属のドライバでどうだってことで、rt73usb.c に、デバイス ID を追加して再インストール
→ ダメ

# apt-get install linux-source-2.6.28
# cd /usr/src/
# tar jxvf linux-source-2.6.28.tar.bz2
# cd linux-source-2.6.28/drivers/net/wireless/rt2x00/
# cp rt73usb.c rt73usb.c-org
# vi rt73usb.c
(下記の場所に、デバイス ID 0x0411, 0x0137 の設定を追加)
/* Buffalo */
        { USB_DEVICE(0x0411, 0x00f4), USB_DEVICE_DATA(&rt73usb_ops) },
        { USB_DEVICE(0x0411, 0x0137), USB_DEVICE_DATA(&rt73usb_ops) },

# mv Makefile Makefile-org
# vi Makefile
(Makefile を下記のように新規作成)
obj-m   += rt73usb.o

# make -C /lib/modules/`uname -r`/build M=`pwd`
# cp rt73usb.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/rt2x00/

この辺で、再起動すると、動作するようになっていました。
別のディスクで、同様の操作をしてみたのですが、それはダメでした。
(何が効いたのか、全く謎です)。

結論:
WLI-UC-G より、WLI-UC-GN の方が導入しやすい。
(すみません、参考にならないですね)

■ 2009/09/30 追記

Ubuntu のパッケージを更新してから再起動、
再度 rt73 のソースを make clean; make ; make install して、再起動をすると、
WPA 系の暗号化も利用できるようになっていました。

■ 2009/10/18 追記

kernel 2.6.31.4 のソースを取得して、下記ファイルを編集して、ビルドすると、WPA2 系でも動作しました。
linux-2.6.31.4/drivers/net/wireless/rt2x00/rt73usb.c

■ 2010/05/22 追記

kernel 2.6.34 のソースでは、下記ファイルを編集して、ビルドしてもダメでした。
linux-2.6.34/drivers/net/wireless/rt2x00/rt73usb.c
それじゃ、次の手段。

下記から compat-wireless-2.6.34-rc4.tar.bz2 をダウンロード。
ちなみに、compat-wireless-2.6.34.tar.bz2 は、ビルドに失敗しました。
http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/v2.6.34/

# tar jxvf compat-wireless-2.6.34.tar.bz2
# cd compat-wireless-2.6.34-rc4/
# vi drivers/net/wireless/rt2x00/rt73usb.c
(下記を追加)
{ USB_DEVICE(0x0411, 0x0137), USB_DEVICE_DATA(&rt73usb_ops) },
# make
# make install
(これじゃインストールされないのかな? /lib のファイルが更新されてなかったら、無理やりコピー)
# cp drivers/net/wireless/rt2x00/rt73usb.ko /lib/modules/2.6.34/kernel/drivers/net/wireless/rt2x00/rt73usb.ko

これでいけました。

● Buffalo, WLI-UC-G, rt73, 0x0411, 0x0137, 411, 137, WPA, WEP, WLI-UC-GN, 比較, どっち, 無線, LAN

3 件のコメント:

しゅんしゅん さんのコメント...

追記でWPAについてを詳しく教えてください

まさお さんのコメント...

しゅんしゅんさん、コメントありがとうございます。どの辺を詳しく説明したら良いでしょうか? カーネルの再ビルドのあたりでしょうか?

匿名 さんのコメント...

工人舎SH6内蔵無線LANがどうにも不安定(WPA2)で、貴殿のブログに辿り着きました。貴重な情報を元に頑張ってみようと思います。助かります
Ubuntu10.10