Linux Tips

LinuxでWindows用無線LANドライバを利用するには

北浦訓行
2005/7/28

 多くの無線LAN PCカードには、Linux用のドライバがない。制御チップの仕様は公開されないため、第三者がドライバの開発を行うのも難しい。このような状況を打破すべく開発が進められているのが、NdisWrapperhttp://ndiswrapper.sourceforge.net/)だ。

 NdisWrapperは、Windows用の無線LANドライバをLinuxで利用できるようにするためのソフトウェアである。原稿執筆時点では、NdisWrapper 1.2が公開されている。すべての無線LAN PCカードがNdisWrapperで動作するわけではないが、挑戦してみる価値はあるだろう。「NdisWrapperのWiki」(http://ndiswrapper.sourceforge.net/wiki/)や「無線LAN動作報告」(http://kmuto.jp/open.cgi?%cc%b5%c0%feLAN%c6%b0%ba%ee%be%f5%b6%b7)には、NdisWrapperの動作報告が掲載されている。

 ここでは、アイ・オー・データ機器のIEEE802.11b対応PCカード「WN-B11/CBL」をNdisWrapperで動作させてみる。

 最初に、WN-B11/CBLをPCカードスロットに差し込み、認識されるかどうかを確認する。

# lspci
(省略)
03:00.0 Network controller: Linksys ADMtek ADM8211 802.11b Wireless Interface (rev 11)

 次に、http://sourceforge.net/projects/ndiswrapper/からNdisWrapperのtarボールをダウンロードして、インストールする。

$ tar zxf ndiswrapper-.12.tar.gz
$ cd ndiswrapper-1.2
$ make distclean
$ su
Password:
# make
# make install
# exit

 NdisWrapperをインストールしたら、Windows用のドライバをインストールする。ここでは、アイ・オー・データ機器のWebサイトからダウンロードした最新版のWindows XP用ドライバを使用する。lhaコマンドで自己展開方式のEXEファイルを展開し、ndiswrapperコマンドでWindowsのINFファイルを指定してインストールする。

# lha x wb11cbl104.exe
# cd wb11cbl/winxp
# ls
setup wncbl5.inf wncbl5.sys
# ndiswrapper -i wncbl5.inf
Installing wncbl5

 以上で、Windows用のドライバがインストールされたはずだ。-lオプションを付けてndiswrapperコマンドを実行すると、インストール状況が表示される。

# ndiswrapper -l
Installed ndis drivers:
wncbl5 driver present, hardware present ←ドライバがインストールされ、ハードウェアも認識されている

 次に、modprobeコマンドでNdisWrapperのカーネルモジュールを読み込む。

# modprobe ndiswrapper
# iwconfig
(省略)
wlan0     IEEE 802.11b  ESSID:"default"
          Mode:Managed  Frequency:2.442 GHz  Access Point: 
00:00:00:00:00:00
          Bit Rate:11 Mb/s   Tx-Power:28 dBm   Sensitivity=0/3
          RTS thr:2346 B   Fragment thr:2344 B
          Encryption key:off
          Power Management:off
          Link Quality:100  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
# iwconfig wlan0 essid ESSID
# iwconfig wlan0 key restricted s:WEPキー
# dhclient wlan0
# ifconfig
(省略)
wlan0     Link encap:Ethernet  HWaddr 00:A0:B0:xx:xx:xx
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:
255.255.255.0
          inet6 addr: 2001:240:79:0:xxx:xxxx:xxxx:3b/64 Scope:Global
          inet6 addr: fe80::xxx:xxxx:xxxx:3b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:266 errors:0 dropped:0 overruns:0 frame:0
          TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:100272 (97.9 KiB)  TX bytes:32210 (31.4 KiB)

注:128ビットのWEPでは、文字列の場合13文字の暗号化キーを設定する。NdisWrapperでWEPキーを設定する際、14文字以上の入力するとカーネルがハングアップするので注意が必要だ。

 以上の設定で、ネットワークへのアクセスが可能になるはずだ。動作を確認したら、以下のコマンドを実行する。すると、/etc/modprobe.confに設定が追加されて、システム起動時にNdisWrapperのモジュールが自動的に読み込まれるようになる。

# ndiswrapper -m

 ネットワークへのアクセスが可能になったら、無線LANの設定を再起動時も有効にするにはの手順で、再起動時にも無線LANが有効になるように設定する。

 なお、筆者の環境では[ワイヤレス接続を設定]画面で[モード]を[Auto]にして、[チャンネル]をアクセスポイントと同じチャンネル数にしないと通信できなかった。

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 記事ランキング

本日 月間