WLI-CB-AMG54をPCMCIAスロットに差し込むと、/var/log/messages や /var/log/dmesg にログが書き込まれる間もなく、フリーズする。標準のカーネルドライバでうまくいかない場合の対処方法メモ。
この無線LANアダプタはAtheros AR5212チップを用いているので、まず、Atheros用のカーネルモジュールの読み込みを阻止する。
blacklist ath_pci
blacklist ath5k ← この行を追加
blacklist ath9k ← この行を追加
ここで、PCを再起動。
無線LANアダプタをPCMCIAスロットに差し込んで、ハードウエアの認識状況を確認。標準のカーネルモジュールはath5kとなっている。
root@p1w:~# lspci -v
~ 他のデバイスの表示を省略 ~
0a:00.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
Subsystem: Melco Inc Device 033b
Flags: medium devsel, IRQ 20
Memory at 50000000 (32-bit, non-prefetchable) [disabled] [size=64K]
Capabilities: [44] Power Management version 2
Kernel modules: ath5k
ndiswrapperのインストール
root@p1w:~# apt-cache search ndiswrapper
linux-image-2.6.31-14-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-14-generic-pae - Linux kernel image for version 2.6.31 on x86
linux-image-2.6.31-302-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
ndisgtk - graphical frontend for ndiswrapper (installation of Windows WiFi drivers)
ndiswrapper-common - ndiswrapper 用ユーティリティの利用に必要な共通スクリプト
ndiswrapper-utils-1.9 - Userspace utilities for the ndiswrapper Linux kernel module
root@p1w:~# apt-get install ndiswrapper-common
root@p1w:~# apt-get install ndiswrapper-utils-1.9
無線LANアダプタ製造メーカのホームページ『 BUFFALO Wireless LAN Driver Disk Ver.10.52(2008年8月5日掲載)』より、Windows用ドライバをダウンロードして解凍。(個人的にこのサイト内にバックアップ(wli-cb-amg-win2kdrv.tar.gz)を保管)
Windows2000用ドライバをインストールする。
root@p1w:~# wget http://buffalo.jp/php/ldl.php?to=secure%2Flan%2Fwdrv-1052.exe....
root@p1w:~# lha x wdrv-1052.exe.....exe
root@p1w:~# cd wdrv-1052/cbamg54/win2000/
root@p1w: win2000# ndiswrapper -i netamg54.inf ← ドライバのインストール
root@p1w: win2000# ndiswrapper -l ← インストール状況の確認
netamg54 : driver installed
device (168C:0013) present (alternate driver: ath5k)
ドライバのファイルは、/etc/ndiswrapper/netamg54/ にコピーされる。
(再起動を行わないで) この状態で、無線LANアダプタが機能するか、確認してみる。
root@p1w:~# depmod -a
root@p1w:~# modprobe ndiswrapper
root@p1w:~# lsmod|grep -e ndiswrapper
ndiswrapper 185404 0
この状態でPCを再起動すれば、モジュールを再び手動で読み込む ( modprobe ndiswrapper ) 必要がある。起動時に自動的にモジュールを読み込ませるために、自動起動ファイルを作成する。
root@p1w:~# ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...
root@p1w:~# cat /etc/modprobe.d/ndiswrapper ← 念のため、内容を見てみる
alias wlan0 ndiswrapper
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
lp
ndiswrapper ← この行を追加する
■ WPA認証エラーが起こる場合
WPA認証でエラーが起こり、/var/log/messages に次のようなメッセージが延々と吐き出されて、接続できない場合…
Dec 3 07:19:17 p1w kernel: [ 258.950199] ndiswrapper (iw_set_auth:1602): invalid cmd 12
Dec 3 07:19:31 p1w kernel: [ 273.187877] ndiswrapper (iw_set_auth:1602): invalid cmd 12
Dec 3 07:20:33 p1w kernel: [ 334.379670] ndiswrapper (iw_set_auth:1602): invalid cmd 12
Dec 3 07:21:06 p1w kernel: [ 367.670826] ndiswrapper (iw_set_auth:1602): invalid cmd 12
Dec 3 07:21:49 p1w kernel: [ 411.235245] ndiswrapper (iw_set_auth:1602): invalid cmd 12
いまのところ、この問題を回避できるndiswrapperは提供されていないため、自分でソースコードにパッチを当てる必要があるようだ。
詳しくは…
・Ubuntu Bug #459716 : encrypted modes don't work on ndiswrapper wireless adapters
・Ubuntu [SOLVED] Fixing ndiswrapper invalid cmd 12
■ 参考資料
・@IT:LinuxでWindows用無線LANドライバを利用するには
・Ubuntu Document - WifiDocs Driver Ndiswrapper
・Ubuntu日本語フォーラム : 初心者サポート WLI-PCM-L11GPで無線LAN接続はできます
・Ubuntu日本語フォーラム : 初心者サポート madwifiについて
・Ubuntu Tips/ハードウェア/Ralink RT2500系の WLANカードを使うには(ndiswrapper の使用例)
■ 過去の記事
・Fedoraで無線LANカード WLI-CB-AMG54を使う設定