FC2ブログ

Ubuntu で WLI-CB-AG54

ndiswrapperはWindows用ドライバをLinuxで使用可能にするモジュール。これを使ってうちにあったWLI-CB-AG54をubuntuをいれたノートPCで動かしてみようとしたのだが、これがなかなか動かん!!!一度挑戦したときはapt-getしてインストールしたndiswrapperのバージョンが古かったためか、まったく思うように動作してくれなかった。。。orz
で、散々やってようやく動き出した。最新版のndiswrapperをソースからコンパイル&インストールしたから動き出したのか?この辺りの詳細は不明(-.-;)
とりあえず、以下設定方法をまとめる。


(1) ndiswrapperのコンパイル&インストール
まずはコンパイル。ndiswrapperの最新版をダウンロードして展開。
ここでmakeの前にmake uninstallを実行。すると元々デフォルトで(?)インストールされていたndiswrapperのモジュールを抜いてくれた。
# これって結構重要なポイントかも?普通にインストールしてたら古いモジュールは上書きしてくれてたのかなぁ。

$ sudo make uninstall
Password:
NOTE: Not all installed files are removed, as different distributions install ndiswrapper files at different places.
Run uninstall as many times as necessary until no "removing" messages appear below.
removing /lib/modules/2.6.20-16-generic/kernel/ubuntu/misc/ndiswrapper/ndiswrapper.ko
$

make uninstallしてキレイになったところでmake。

$ make

初めてコンパイルしたときはこの後コンパイルエラーで終了してしまった。どうやら build-essential パッケージが入っていないためにコンパイルに失敗した模様。Synaptic パッケージ・マネージャで build-essential をインストール。関連するパッケージも迷わずインストールする。build-essentialをインストール後に再度make。今度は無事make成功。makeができれば後はインストール。

$ sudo make install

これでndiswrapperのインストールは成功。


(2) pciidを調べる
ドライバを入手するためにpciidを調べる。無線LANカードを差した状態でlspciコマンドを実行。

$ lspci
:
02:00.0 Network controller: Broadcom Corporation BCM4309 802.11a/b/g (rev 02)

lspciはシステムの全てのPCIバスと、そこにつながっている全てのデバイスに関する情報を表示するコマンド。結果を見ると、BuffaloのWLI-CB-AG54はこれのようである。
次に、-n オプションを付けると pciid がわかる。

$ lspci -n
:
02:00.0 0280: 14e4:4324 (rev 02)


(3) pciidに対応するWindows用ドライバを取得
調べたpciidに相当するWindows用ドライバを使えばよい。本来なら無線LAN販売元の Buffalo のサイトから落としてくるのだろうが、どうも Buffalo のサイトのドライバは Ubunts にインストールした際にうまく動いてくれないようであった。なのでndiswrapperのサイトのリストから対応のドライバを検索。DELL製のカードにもBroadcom BCM4309チップセットを使ったものがあるようだ。下記のサイトよりドライバを入手。

ftp://ftp.dell.com/network/R74091jp.EXE


(4) ドライバの展開&インストール
上記のexeは自己解凍形式のバイナリだが、Linux上ではうまく展開できないようだ。なのでWindows上で展開し、Ubuntuへ。。unzipコマンドで解凍できる。単にunzip <ファイル名>だとカレントにファイルが解凍されてしまうから要注意。
展開後にできるディレクトリにinfファイルがあるので、これを使ってインストールする。コマンド実行時はカレントディレクトリにinfファイルがあるようにcdしてから実行すること。

$ cd AR/
$ sudo ndiswrapper -i bcmwl5a.inf

成功すると/etc/ndiswrapper/下にインストールしたドライバ用のディレクトリが生成され、infファイル等がコピーされる。
上記ドライバをインストールすると「/etc/ndiswrapper/bcmwl5a/」が生成される。


(5) インストール後の確認
正しくインストールされたか確認。

$ ndiswrapper -l
bcmwl5a : driver installed
device (14E4:4324) present (alternate driver: bcm43xx)

ndiswrapperのサイトを見ると、「(alternate driver: bcm43xx)」という表示が出る場合は古いドライバを使用していて、新しくインストールしたドライバを使っていないという記述があったが、この状態でもまともに動作している。
# まぁ何かこう表示される原因はあるんだろうけど(^^;)

やはり原因(?)はあった(笑)最近、ubuntu を 7.10 に更新した。すると bcm43xx という WLI-CB-AG54 に乗っているチップに対応する汎用ドライバが既にあるらしく、こいつを止めてあげないとndiswrapperを使って WLI-CB-AG54 を使うことができないようだった。以下の手順を追加する。

$ sudo rmmod bcm43xx

これで bcm43xx を削除。続いて、以後、再起動後に bcm43xx が読み込まれないように、/etc/modprobe.d/blacklistに以下の内容を設定。

blacklist bcm43xx

ファイルの最後にでも設定すればOK。
最後にndiswrapperでラップしたWindows用ドライバをシステムに反映させる。

$ sudo depmod -a
$ sudo modprobe ndiswrapper

これでリンクランプが付き、WLI-CB-AG54が動き出す。
再起動後、無線LANの設定を行えば通信が行えるようになるだろう。


ここまでたどり着くのに結構かかったなー。
まぁでもちゃんと動いてるようでこれでOKだ。
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。