
Ubuntu日本語フォーラム

ログインしていません。
私、wli-uc-g300nの無線lanをubuntuで認識させるのに、相当てこずり悩みましたので、おなじくお悩みの方にご報告します。
ちなみに、わたし、初心者です。まちがった認識があるかもしれませんが、結果としては自動でつながりますのでよろしくお願いします。
ポイントは、wli-uc-g300nを誤認してしまうdefaultドライバ無効にすることと、insmodコマンドでの仕上げ、モジュールの自動ロードのための/etc/rc.localの設定でした。
まず、dehaultドライバがwli-uc-g300nの認識を邪魔していそうです。ndiswrapperをインストールして、buffaloから調達したdriverをlhaで解凍して、その中のdriver/ucg300n/netucg300n.infをインストールします。どうせ認識しないのでその流れですぐさま削除。すると、いままで誤認していたドライバが沈黙します。
そうしたら、ralinkのlinuxページからRT2870USB(RT2870/RT2770)をダウンロードして、他でも紹介されているように、wpaが使えるようにos/linux/config.mkをgeditで以下の項目の=n を =yに変更します。
# Support wpa_supplicant HAS_WPA_SUPPLICANT = y
# Support for Native WpaSupplicant Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT = y
おわったら保存してgeditを閉じて、cd .. cd ..でRT2870_STA_V2.3.0.0までもどって、makefileの存在を確認して
$sudo make (念のためsudo)
$sudo make install
さらに、
$sudo insmod /home/goto/RT2870_STA_V2.3.0.0/os/linux/rt2870sta.ko
(※ご周知かと思いますが一応断っておきますが、gotoのところは適宜変更を願います。)
これで、shutdownするまで無線Lanがつながる状況になります。
しかし、再起動すると、モジュールを自動でロードできない様子なので、
$sudo gedit /etc/rc.local
で、exit0の直上に
sudo insmod /home/goto/RT2870_STA_V2.3.0.0/os/linux/rt2870sta.ko を追記
(お分かりかとは思いますが、この場合はhome/gotoにrt2870staを解凍したことを前提としています。gotoは適宜変更のうえ、.koを指定してsudo insmodを書いて。)
これで、wli-uc-g300n_デバイスの認識と、起動時のネットワークモジュールの自動ロードの問題は解決します。
オフライン
goto.giorgio.takashi さん による投稿:
ちなみに、わたし、初心者です。まちがった認識があるかもしれませんが、
私はこの作業を実際に実行したわけではありませんが,後から参考にする人のため,3点コメントを加えます.
$sudo make (念のためsudo)
この sudo は付けるべきではありません.
$sudo insmod /home/goto/RT2870_STA_V2.3.0.0/os/linux/rt2870sta.ko
直接 insmod を使うのではなく,modprobe を使うことが推奨されています.
$sudo gedit /etc/rc.local
で、exit0の直上に
sudo insmod /home/goto/RT2870_STA_V2.3.0.0/os/linux/rt2870sta.ko を追記
/etc/rc.local ではなく,/etc/modules にモジュール名 rt2870sta を追記するのが普通です.
オフライン
訂正します。
ndiswrapperでnetucg300n.infをインストールしたあと、再起動してください。でないと、defaultドライバはとまりません。
再起動後、netucg300n.infを削除してRT2870USB(RT2870/RT2770)をmake,makeinstallしてください。
追記、modprobeが正規の方法なのでしょうが散々試みましたが、エラーが出て出来ませんでした。
とりあえず、上記の方法で無線ランは自動で作動するようになるので、参考にしてください。
オフライン
goto.giorgio.takashiさん
3つほど質問があります。
1.使用しているUbuntuのバージョン(10.04ですか?)
2.アクセスポイントの認証に関する設定(WPA/WPA2を使用していますか?)
3.初期状態でもrt2870staはロードされているが、接続できない状態ですか?
他の人の参考になるかもしれないので回答いただけますでしょうか。
上記3点に合致していて、Ralinkのv2.3ドライバーを導入すると接続可能であれば、
wli-uc-g300n(rt2870)ユーザが
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/496093
(これははrt2860を問題にしているようです)
を回避できるということになると思います。
上記URLの#25でもrt2860ではRalinkのVer2.3のドライバーで接続できているようです。
しかし、そのすぐあと#26,#27にちょっと気になるコメントがあって、
#26でWPA_SUPPLICANT=yの設定が意味が今のカーネルでは意味がないと言われています。
#27ではソースを見る限り問題を解決するようなものは何もなかったと書いてあります。
#26,27発言者はUbuntu Kernel Teamの方のようなので発言に信ぴょう性はありそうです。
(でもRalinkのv2.3ドライバーで実際に接続できている。どういうことでしょう?)
オフライン
この件におけるmodprobeの使用については、下記のような問題があります。
●問題点
元のドライバーは
/lib/modules/$(uname -r)/kernel/drivers/staging/rt2870/rt2870sta.ko
にありますが、
sudo make installで新しいドライバは
/lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2870sta.ko
へコピーされます。
make install 時にはdepmod -a $(uname -r)も実行されるのですが、
このパスの違いが問題のようで、/lib/modules/$(uname -r)/modules.depには
元のドライバの方しか記載されません。
したがって、sudo modprobe rt2870staを実行しても新しいドライバは使用されません。
確認は modinfo rt2870sta の出力でできます。(最初の行にフルパスが出力されます。)
●解決方法
デフォルトのドライバを削除しておくか、
RT2870_LinuxSTA_V2.3.0.0/Makefileを下記のように修正して元のドライバを上書きするようにすれば
modules.dep(およびその関連ファイル)に新しいドライバの情報が反映されます。
特に/etc/modulesに追記を行うことなく次回起動時からモジュールを読み込んでくれるはずです。
RT2870_LinuxSTA_V2.3.0.0/Makefileを修正する場合、変更は下記のようになります。
(diff -u の出力形式です。先頭が-の行は修正前の内容、+の行は修正後の内容、先頭が空白の行は変更がない部分です。)
@@ -86,7 +86,7 @@
LINUX_SRC = /lib/modules/$(shell uname -r)/build
# Linux 2.4 Change to your local setting
#LINUX_SRC = /usr/src/linux-2.4
-LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
+LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/staging/rt2870/
CROSS_COMPILE =
endif
●導入時の手順
goto.giorgio.takashiさんの手順にあるndiswrapperによるnetucg300n.infのインストールは不要だと思います。
(ndiswrapperの操作がどのファイルをどのように変更するのか知らないのでなんとも言えないのですが...)
必要な手順は
1.インジケータを右クリックして無線LANを無効にする。
2.sudo modprobe -r rt2870sta (更新前のmodules.depを参照してモジュールをアンロード)
3.Makefileの修正、またはデフォルトのドライバの削除(退避)
4.os/linux/config.mkの修正
5.make
6.sudo make install
7.sudo modprobe rt2870sta
8.インジケータを右クリックして無線LANを有効にする。
9.必要であれば認証関連の情報などの設定。
といったところでしょうか。
オフライン
お忙しい中、親身にアドバイスしてくださりありがとうございます。
すごいですね!MidSpecLowLoadさんのアドバイスで、完璧に解決です。
が、一応、私の書き込みの補足をします。
defaultのドライバが邪魔してる件ですが、コマンドlsmodでusb無線lanを差し込み前と後での変化を見ました。
すると、rt2800usb rt2x00usb rt2x00lib が差し込み後作動しているのがわかりました。
それを、/etc/modprobe.d/blacklist.conf の末尾に
blacklist rt2800usb
blacklist rt2x00usb
blacklist rt2x00lib と追記すると、無線lanの動作が止まりますので、ndiswrapperで苦肉の策を実効するより簡単でした。
ちなみに、ご質問にお答えしますが、私の苦肉の策は、ubuntu9.10と10.4で実効しました。wpaです。usb無線lanを差し込んだ時に自動で機動してしまうドライバは上記にあげた3つってことでしょうか。
まとめると
RT2870_STA_V2.3.0.0のconfig.mkをwpaの設定にして、makefileの
LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/ を
LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/staging/rt2870/
に書き換えて、普通にinstall すれば、問題は解決です。
素敵なアドバイスに感謝します。ありがとうございました。
オフライン
解決とおもっていたら、再起動したら再びdefaultドライバが作動してしまいました。
$sudo touch /etc/modprobe.d rt2870sta (modprobe.dフォルダにrt2870staという名の空ファイルを作成)
$sudo gedit /etc/modprobe.d/rt2870sta (いま作った空ファイルを開く))
alias ra0 rt2870sta (記入)
$sudo gedit /etc/modules (modulesを開く)
rt2870sta (追記)
で解決
オフライン
goto.giorgio.takashi さん
まずはUbuntuのバージョンと認証方式に回答くださってありがとうございます。
同一のチップを使用していて接続できたり、出来なかったりとういうことがあるようなので、
実際にある製品で、特定の認証方法で接続できたという情報は貴重だと思います。
ところで、#6,#7の書込みについてなのですが、疑問点とおかしいと思われる点があります。
●#7の書込みについて(おかしいと思われる点)
#6でMakefileを編集した上で、
$ sudo make install
を実行しているのであれば、元々入っていたrt2870sta.koは上書きされて存在しません。
#7で再起動後、デフォルトのドライバーが作動していたというのはありえない筈なのです。
(考えられるケースはUpdate Managerを実行してカーネルを更新するか、インストールしなおした場合くらいですが...)
●#6の書込みについて(若干疑問な点)
/etc/modprobe.d/blacklist.conf の末尾への追加ですが、
"blacklist rt2800usb"の追加だけで動作するはずです。
(rt2800usbの方を弄って故意にrt2870staと衝突するようにして自分の環境で試しました。)
このフォーラムを検索すると rt2x00usb,rt2x00libもblacklistに加えると記述してある投稿が見つかりますが、
そういった他の方がウェブ上に公開した情報を元に作業をされたのでしょうか。
あるいはndis wrapperがrt2x00usb,rt2x00libもblacklistに追加するのでしょうか。
(ndis wrapperが行っているのならどういうロジックかみてみたいですね。)
オフライン