Linux Tips

NdisWrapperでWindows用無線LANドライバが動作しない場合は

北浦訓行
2005/9/8

 LinuxでWindows用無線LANドライバを利用するにはで、NdisWrapperhttp://ndiswrapper.sourceforge.net/)とWindows用ドライバによる無線LAN PCカード(以下無線LANカード)の利用方法を紹介した。

 NdisWrapperを利用する際は、まず使いたい無線LANカードのコントローラの動作実績を調べる。NdisWrapper Wiki(http://ndiswrapper.sourceforge.net/mediawiki/)には、NdisWrapperでの動作実績(List of cards known to work)が公開されている。このページでは、無線LANカード単位だけでなく、そのカードのコントローラも掲載されている。以下のように、lspciコマンドなどでコントローラのメーカーや型番を調べ、それを元に検索するといいだろう。例えば、バッファローの「WLI-CB-G54」の場合、以下のような結果が表示される。

# lspci
(省略)
03:00.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02) ←BroadcomのBCM4306が搭載されている

 WLI-CB-G54の場合、バッファローのWebサイトからダウンロードできるドライバ(wdrv_661.exe)をNdisWrapperで動かそうとしても動作しない。dmesgコマンドで状況を確認すると、カーネルのスタックエリアが不足しているときに表示されるメッセージに似たエラーが出ている。

 このようなときは、同じコントローラを使っている他社のドライバを試してみると、動作する場合がある。NdisWrapper Wikiには、BCM4306を搭載した製品がいろいろと出ているので、適当なメーカーのドライバをダウンロードして試してみよう。筆者が確認した限りでは、LinksysのWMP54GSという機種のドライバ(WMP54GS_20050406.exe)で動作した。動作しない場合は、何種類か別のメーカーのドライバ(またはバージョンの異なるドライバ)で試してみるといいだろう。

 また、WLI-CB-G54に限ると、バッファローのドライバ(wdrv_661.exe)でも、bwcdrv.sysというファイルを削除するだけで動作させることができる。手順は以下のとおりだ(EXEファイルの展開方法については、LinuxでWindows用無線LANドライバを利用するには参照)。

# cd wdrv_661.exeをダウンロードしたディレクトリ/wdrv_661/cbg54/win2000
# ls
bcm43xx.cat  bwcdrv.cat  bwcinst.dll  mdriver       netbwc2k.inf
bcmwl5.sys   bwcdrv.sys  bwcsrv.exe   net2pg54.inf  netcbg54.inf
# ndiswrapper -i netcbg54.inf ←ドライバをインストール
Installing netcbg54
Forcing parameter IBSSGMode|0 to IBSSGMode|2
Forcing parameter IBSSGMode|0 to IBSSGMode|2
# ndiswrapper -l ←インストールされたかどうかを確認
Installed ndis drivers:
netcbg54        driver present, hardware present
# rm /etc/ndiswrapper/netcbg54/bwcdrv.sys ←bwcdrv.sysを削除
rm: remove 通常ファイル `/etc/ndiswrapper/netcbg54/bwcdrv.sys'? y ←「y」を入力して[Enter]キー
# modprobe ndiswrapper

 dmesgコマンドで状況を確認する。以下のように表示されれば正常だ。

#dmesg
(省略)
ndiswrapper: using irq 9
wlan0: ndiswrapper ethernet device xx:xx:xx:xx:xx:xx using driver netcbg54, configuration file xxxx:xxxx:xxxx:xxxx.x.conf
wlan0: encryption modes supported: WEP, WPA with TKIP, WPA with AES/CCMP

 後は、iwconfigコマンドでESSIDWEPキーなどを設定する。

# iwconfig
(省略)
wlan0     IEEE 802.11g  ESSID:"default"
          Mode:Auto  Frequency:2.462 GHz  Access Point: 
00:00:00:00:00:00
          Bit Rate=54 Mb/s   Tx-Power:25 dBm
          RTS thr=2347 B   Fragment thr=2346 B
# iwconfig wlan0 essid ESSID
# iwconfig wlan0 key restricted s:WEPキー
# dhclient wlan0 ←IPアドレスを取得(DHCPの場合)

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間