Linux(Ubuntu 9.04)で未対応USB無線LANアダプタ(WLI-UC-GN)の設定方法

前の日記に書いたノートパソコンですが、インストールするOSはUbuntu 9.04に決定しました。
ちゃんと調べてはいないんですが、今設定や扱いなどが一番簡単なLinuxディストリビューションはたぶんUbuntuだと思いますので、まずはUbuntuLinuxの扱いに慣れていこうかなと。
今のHD容量が40GBなのでたぶんいっぱいになるまでそう長くは持たないでしょうし、金銭的に少し余裕が出来たらHDを換装しようと思うので、その時にはDebianをインストールしようと思っています。*1
その時にはある程度の知識も身についていて、きっと大丈夫なはず!w
とりあえずコマンド操作を覚える為にも、Linuxの操作は基本的にコマンドでやるようにして頑張ってます。


前置きが長くなりましたがLinux(Ubuntu 9.04)の設定をいじったりしていて、躓いた部分なんかを自分用のメモも兼ねて記事にしていこうと思います。
インストール自体は特に躓く事もなく終了したので、今回は手持ちの無線LANアダプタが未対応だった場合の設定方法です。
特にノートパソコンだとほとんどの人が最初に設定するぐらい大切だと思いますしねw

未対応無線LANアダプタの設定方法

今回設定する際に参考にしたサイトはこちらです。
Ubuntu日本語フォーラム / BUFFALO USB無線LAN WLI-UC-GNについいてです。
How2Ubuntu - PukiWiki
まさおのブログ (表): [Obsolete] Ubuntu 8.10 で USB 無線 LAN アダプタ (Buffalo WLI-UC-GN) を使う
基本的には上記のサイトを参考にすれば問題ないと思うんですが、途中でエラーが出たりもしたので、その際の注意点や解決法を添えて自分設定した方法まとめますね。

注意点

この方法はタイトルの通り僕がUbuntu 9.04にWLI-UC-GNを設定した時の方法ですので、他のディストリビューションでは異なる場合があります。
ですが、一応ドライバ自体はUbuntuにではなく、Linux自体に対応させたものですので、作業は違っても使用できると思います。
また、このドライバはRalink Technologyという会社のチップを使っている無線LANアダプタなら、1.で対応させたいアダプタのチップにあったファイルを落とし、4.5.の作業を設定したいアダプタに調整すれば使えるようです。


$は端末での操作を指し、以降の文はコマンドの事です。
それとコマンドの詳細については説明しているとキリがないので、省略して最低限の説明となっております。

1.下記のサイトから最新のドライバをダウンロードする。

http://www.ralinktech.com/support.php?s=2
今回の僕の場合だと、RT3070USB(RT307x)をクリックして、2009_0424_RT3070_Linux_STA_v2.1.0.0.tar.bz2というファイルをダウンロードしました。


ここで注意して欲しいのはダウンロードしたファイルの絶対パスが、絶対に日本語を含まない英数字のみのになるように、ダウンロードしてから移動するかダウンロードする場所を変更して下さい。
詳しくは後で書きますが、日本語が含まれる場所だとエラーが出て設定できない可能性があります。

2.ダウンロードしたファイルを解凍する。
$ cd /home/USER_ID/downloads
$ tar jxvf 2009_0424_RT3070_Linux_STA_v2.1.0.0.tar.bz2

/home/USER_ID/downloadsはダウンロードしたファイルのある場所で、
USER_IDは僕のUbuntuのユーザーIDの事です。
2009〜〜はダウンロードしたファイル名です。

解凍するとファイル名から拡張子.tar.bz2を除いた名前のディレクトリが作成され、このディレクトリ内にファイルが解凍されます。
以降ではこのディレクトリを説明しやすいように ドライバホーム と呼びます。
今回の僕の場合だと、/home/USER_ID/downloadsに作成された2009_0424_RT3070_Linux_STA_v2.1.0.0という名前のディレクトリの事です。

3.ドライバホーム/os/linux/にある config.mk を編集する。
$ cd 2009_0424_RT3070_Linux_STA_v2.1.0.0/os/linux/
$ vi config.mk

ファイルのある場所に移動し、viで編集しています。
viの操作が分からない方はgeditなど操作のわかるエディタで編集して下さい。

config.mkに下記のような部分があるので、

# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=n

# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

この2箇所を下記の通りに変更する。
つまり=の後の n を y にです。

# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y

# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
4.無線LANアダプタを接続し、IDを調べる。
$ lsusb

これを実行するとUSB機器の情報一覧が出力されますので、
その中から設定したいアダプタを見つけてIDなどをメモして下さい。
僕の場合だと下記の通りで、0411:015d がWLI-UC-GNのIDです。

Bus 001 Device 002: ID 0411:015d MelCo., Inc.
5.調べたIDをUSBの設定ファイル(解凍先/os/linux/usb_main_dev.c)に追記する。
$ vi usb_main_dev.c

端末を閉じるか参照ディレクトリを移動している場合は、
移動するかファイルへのパスを指定するなりして下さい。

で、このファイル内に下記のような部分があり、

#ifdef RT3070
	{USB_DEVICE(0x148F,0x3070)}, /* Ralink 3070 */
	…略…
	{USB_DEVICE(0x1D4D,0x000C)}, /* Pegatron Corporation 3070 */
#endif // RT3070 //

この {USB_DEVICE〜 が並んでいる部分の末尾の行にでも調べたIDを同様の記述で追記して下さい。
僕の場合だと下記を末尾の行に追記しました。

	{USB_DEVICE(0x0411,0x015d)}, /* Buffalo WLI-UC-GN */

USB_DEVICEの()内がIDです。
僕の場合、調べたIDが 0411:015d なので、 0x0411,0x015d と。
後ろの/**/内は単なる説明なので自分にわかりやすく書いておけばOKです。
6.ドライバホームに移動し、make → make install する。
$ cd ../../
$ sudo make
$ sudo make install

これも端末を閉じるなどをしてない前提です。

で、ここで2.に書いていた絶対パスに日本語が含まれているとエラーが出てmakeコマンドが失敗してしまうのです。
僕も最初はデスクトップにダウンロードして、ここまでの作業を行っていたのですが、何回やり直してもここでエラーが出て失敗してしまいました。
調べても見つからないし、原因は何かなぁとmakeの際に表示されるログを見てみると、ログの一部に「デスクトップ」が文字化けしている部分を発見。
もしかしてこれなのかなと試しに英数字のみの場所に移動させて、makeしたら無事インストール出来ましたので、念の為みなさんにもパスに日本語を含まないようお願いしました。


ていうかこれってLinuxのどっかの設定かなんかがおかしいのかな?
誰か教えてLinuxに詳しいエロイ人!

7.完成したモジュールをinsmodする。
$ cd os/linux
$ sudo insmod rt3070sta.ko

端末を閉じるなど参照ディレクトリを移動してない(ry

これで無線LANアダプタを認識させて使えるようにする設定は完了です!
後は接続先の設定などを行えばネットに接続出来ますよ♪


ちなみにカーネルのバージョンを変えた時には、再度インストールが必要らしいので、6〜7の手順を再度実行しないといけないみたいです。


それにしてもUbuntu楽しいよ。Ubuntu
というかLinuxが楽しい!
ノートパソコン自体も始めて持つので便利さに感動だらけですw
まぁまずはノートパソコンを買った目的でもあるプログラミング環境を作って、早くいろいろ作らなきゃなー。
一応作るものも決めてるので記事にして発表しようと思うのですが、それについては次回にw


追記:
ドライバのリンク先に変更があったようなので、padoさんに教えて頂いたURLに変更。

*1:金銭的な意味では本とか他にも欲しいものがあるのでそっち優先させるでしょうけどw