
Ubuntu日本語フォーラム
ログインしていません。
Ubuntu10.04LTS環境への無線LANのインストールができましたので報告します。このフォーラムは支援を求める投稿が多いのですが、今回はご参考にして頂くこと(および諸先輩より誤りの指摘やコメントを頂くこと)を目的として投稿致します。
ハードウェア環境は次の2セットで試し、どちらの場合も成功しています。
(どちらもi386系ですが)
(1) Dell Dimension 9100, Pentium D 2.8GHz, Memory 3GB.
(2) HO Compaq dc-5100 SFF, Celeron D 336 2.8GHz, Memory 2GB.
OSは両方ともUbuntu10.04LTSで、(2)はクリーンインストール直後です。
対象無線LANは Buffalo WLI-UC-G300HP。
流れの概要
(1)Ralink社サイトからのドライバのダウンロードと解凍
(2)モジュール検出の手当て(詳細別途解説)
(3)ダウンロードしたファイルのエディット(2種類)
(4)ドライバの make と make install
(5)再起動とWPA暗号の設定
具体的な手順
(1)ドライバのダウンロードと解凍
http://www.ralinktech.com/support.php?s=2 に行きます。
RT2870USB(RT2870/RT2770) と書かれているドライバをダウンロードします。
これを書いている時点ではVersion2.4.0.1(2010/07/09)です。
ファイル名は「RT2870-2401.tar.bz2」で、次の操作で解凍します。
# tar jxvf RT2870-2401.tar.bz2
解凍されたファイル群は長い名前のディレクトリの中に入ります。
そのままでも構いませんし、長すぎるので名前を変えても構いません。
仮に「~/rt2870」というディレクトリとします。
(2)モジュール検出の手当て
/lib/modules/2.6.32-24-generic/kernel/drivers/staging/rt2870/ の中のrt2870sta.koを消します。(詳細は別途説明します)
# cd /lib/modules/2.6.32-24-generic/kernel/drivers/staging/rt2870
# sudo rm -f rt2870sta.ko
(3)ファイルのエディット
(3-1)対象となる無線LANのUSB上のIDを調べます。
# lsusb
...
Bus 001 Device 006: ID 0411:0148 MelCo., Inc.
...
複数行出てきますが、このうち「MelCo., Inc.」と書かれた行に着目して、内容をメモします。
必要なのは、IDの後で、この場合、0x0411と0x0148 です。
(3-2)~/rt2870/common の中にある rtusb_dev_id.c をエディットします。
#endif // RT2870 // という行の上に似たような行がありますので、次の行を追加します。
{USB_DEVICE(0x0411,0x0148)}, /* WLI-UC-G300HP */
(3-3)~/rt2870/os/linux の中にある config.mk をエディットします。
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=n ← この「n」を「y」に変える。
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n ← この「n」を「y」に変える。
(4)モジュールの作成とコピー
~/rt2870 の場所で、次の操作をおこないます。
# make
# sudo make install
(5)再起動とWPA暗号の設定
ここまで終わったらリブートます。
lsmod で見ると、rt2870staというモジュールの存在が確認できると思います。
# lsmod | grep rt2870
rt2870sta 554829 1
NetworkManagerでWPA暗号を登録する等すればそのまま使用できるはずです。
解説
(A) Module のProbe に関して
上記(2)の意味をご説明します。
sudo make install をしたとき、必要なモジュールrt2870sta.koは「/lib/modules/2.6.32-24-generic/kernel/drivers/net/wireless」の中にコピーされます。その後「/sinb/depend -a」が実行されます。
このdepend は結果として、/lib/modules/2.6.32-24-generic の中に modules.dep というファイルを生成します。
もし(2)の操作を行っていない場合、実際にrt2870sta.koがコピーされた所ではなく、「/lib/modules/2.6.32-24-generic/kernel/drivers/staging/rt2870/」 の中のrt2870sta.koを指差すことがあります。後者のrt2870sta.ko はUbuntuをインストールした時から入っているものですが、これでは役に立ちません。
「/sinb/depend -a」が「/lib/modules/2.6.32-24-generic/kernel/drivers/staging/rt2870/」 の中を参照しないように、この中のrt2870sta.ko を消してやります。
modules.depが正しいrt2870sta.koを指差せば、起動時に確実にprobeしてくれ、他の自動起動の仕組みは必要ないはずです。
これは次のように確認できます。
# cd /lib/modules/2.6.32-24-generic
# cat modules.dep | grep rt2870sta.ko
kernel/drivers/net/wireless/rt2870sta.ko:
(B) ドライバの選択に関して
Internet に上がっている情報は必ずしても上記の手順ではない方法が書かれています。間違いという訳ではありませんが、ダウンロードするべきドライバは「RT2870」が適当と考えられます。一部の記事では「RT3070」のドライバをインストールしてディレクトリ名を変更する記述が散見されますが、RT2870を使った方が単純に目的を実現できます。
(C) この無線LAN製品以外への対応
RT2870を使い、かつUSBになっている無線LAN子機は多く出回っており、下記の製品でも同じ方法で導入できるものと推定します。それぞれIDは異なるはずですので、ご注意ください。
(なお、検証はしていません。)
Buffalo:
WLI-UC-AG300N, WLI-UC-G300N, WLI-UC-GN
PLANEX:
GW-USMicroN, GW-USMini2N, GW-US300MiniS, GW-US300Mini2, GW-US300Mini-X
COREGA:
CG-WLUSB300AGN, CG-WLUSB300GNM, CG-WLUSB2GNL
LOGITEC:
LAN-WN22/U2, LAN-WN12/U2
以上
もし、記述に誤りがあれば、この投稿に対して書き込みをお願いします。なお、私もUbuntu初心者であり、どの程度ご質問にお答えできるか分かりませんが、何かありましたら、同じくこの投稿に対して書き込みを頂ければ、知る範囲でご回答します。
Oasis 拝
オフライン
oasis様
有用なTutorialをありがとう御座います。
今後はこのような動作報告はこの「初心者サポート」にご投稿頂くより、「Tutorial & Tips」へご投稿頂いたほうが宜しいかも知れませんね。
さて、今回のtutorialですが、不特定多数のLinux Beginnerの方が閲覧する可能性があるため、下記の例文のような一行を冒頭へお書き下さい。
このTutorialはドライバを非公式のSource PackageからBuildしてInstallを行います。また、作成・インストールしたkernel moduleは自動ではupdateされません。kernelのバージョンが更新された場合、手動にてもう一度同じ作業をする必要があります。加えて、deb packageとUbuntu Repositoryを使用した「パッケージ管理システム」は利用していないため、install前の状態へ復元するには手動のファイル操作を必要とします。
また、下記の投稿内容
/lib/modules/2.6.32-24-generic/kernel/drivers/staging/rt2870/ の中のrt2870sta.koを消します。(詳細は別途説明します) # cd /lib/modules/2.6.32-24-generic/kernel/drivers/staging/rt2870 # sudo rm -f rt2870sta.ko
ですが、完全にremoveするのではなく、
・万が一に備え$HOME以下の適当なディレクトリにmvする
・mvでファイル名を変更し、末尾に.orgなどと付け区別できるようにしておく。
などしておいた方が無難です。
細かい作業内容に関しては当方も確認し、後々追記させて頂くかも知れません。
重要な事を書き忘れました。
上記HOW TOはどこかのHPやWiki、あるいは個人Blogなどをご参考になされたと察します。
これは同様に作業される可能性のある方にも等しく有用である場合が多いものです。
そのため、参考にした情報元を「参考」という形でリンクしておくと読み手に親切なTutorialになります。
加えてこの参考リンクを参照してもらうことを有効に活用し、Tutorialをご自身でフルスクラッチでお書き頂くよりも作業内容が簡潔になる場合があります。
「既にあるxxxxのTutorialのとある部分をyyyyに読み替えることでそのまま使える」なら、フルスクラッチする意味は薄いでしょう。
tista様
アドバイスありがとうございます。
では今後、このような場合は下記の通り致したいと思います。
(1) 助言頂いた冒頭の注意書きを付け加えます。
(2) 投稿先を「Tutorial & Tips」に致しましょう。
(3) 場合によっては参考文書を引用します。
所で、今回の場合は如何致しましょうか?注意書を添えて新に「Tutorial & Tips」に投稿しなおしましょうか?
その際、二重にならないように本投稿を削除して頂いた方がよいかもしれません。
Oasis
オフライン
oasis さん による投稿:
所で、今回の場合は如何致しましょうか?注意書を添えて新に「Tutorial & Tips」に投稿しなおしましょうか?
その際、二重にならないように本投稿を削除して頂いた方がよいかもしれません。
もうちょっと推敲されてはどうですか.
一番に気になる点は,
# tar jxvf RT2870-2401.tar.bz2
のようにコマンドの前に # が付いていること.
もし,全てを root ユーザで実行しているのだとしたら,それは Ubuntu に限らず Unix の作法として推奨されていません.
Tutorial で広めるには問題が有ります.
root ユーザで作業していないのだとすると,コメントや C のディレクティブ
#endif // RT2870 // という行の上に似たような行がありますので、次の行を追加します。
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=n ← この「n」を「y」に変える。
の # と区別がつきにくくなっています.
オフライン
einundzwanzighundertsechs様
アドバイスありがとうございます。
確かに「#」は2つの意味で良くないですね。
コマンドプロンプトが「#」だとルート権限で作業することを意味してしまいますし、コメントの場合も先頭に「#」がつきますので、誤解を招きます。
コマンドプロンプトを意味する場合には「$」を使っておられる例をみましたので、そちらに切り替えたいと思います。
推敲の後に「Tutorial & Tips」に投稿したいと思います。
Oasis 拝
オフライン