ndiswrapperにも再挑戦
以上の方法(bcm43xx-fwcutterにてファームウェアを抽出して標準ドライバで動かす方法)ではbcm43xx-fwcutterが扱えるファームのバージョンが限られている。今回入手したVer 3.104.64.52も実は2005年01月22日のもので2年以上前のものである。一方、Inspiron 1501ににバンドルされたWindows XPに付属のファームのバージョンは4.100.15.5で、2006年10月12日作成のもので比較的新しいが、bcm43xx-fwcutterでは扱えなかった。(DELLのユーティリティCDを起動すると無線ドライバがメニューに出てくる。3種類あるが、日米以外の国向け、日本向け、米国向けの3種類である。Windowsにインストールしようとすると、日本向けのドライバは、C:\DELL\drivers\R140746 のディレクトリに格納される。実際のドライバはその下のDRIVERディレクトリに格納されている。米国向けドライバは C:\DELL\drivers\R140747 の下である。)
最新の無線チップのファームを使うためにはやはりndiserapperを使わなければならないようだ。ndiswrapperはWindowsのNDISインターフェースをLinuxカーネル内でシミュレートするので、WindowsのドライバがLinux内部で利用出来るようにしたツールだ。論理的にはNDISのインターフェースが変わらない限りは、最新のファームが利用できる。
再度、ndiswrapperにトライしてみた。
1. ndiswrapperをインストールする
パッケージマネージャを使って「ndiswrapper」で検索すると「kmod-ndiswrapper - 1.38.2.6.20_2948」がリストされるのでチェックしてインストールする。
2. bcmlw5.sys を入手する
bcm43xx-fwcutterではファームウェアの本体のファイルだけで良かったが、ndiswrapperは「inf」ファイルも必要となる。
3. ndiswrapperを使ってファームを取り込み確認する
# ndiswrapper -i bcmwl5.inf installing bcmwl5 ... # ndiswrapper -l bcmwl5 : driver installed device (14E4:4312) present (alternate driver: bcm43xx)
4. modprobe.conf(と関係ファイル)を変更する
# ndiswrapper -m adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ... # cat /etc/modprobe.d/ndiswrapper alias wlan0 ndiswrapper
5. modprobeでndiswrapperを起動する
# modprobe ndiswrapper
これでリブートすれば使えるようになる。が、
iwconfigで確認すると、
# iwconfig eth1 eth1 IEEE 802.11g ESSID:off/any Nickname:"hoge.local.j" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated Bit Rate=54 Mb/s Tx-Power:32 dBm RTS thr:off Fragment thr:off Encryption key:ABCD-EF01-23 Security mode:restricted Power Management:off Link Quality:0 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
となり、802.11gベースで54Mbpsで起動している様に見える。しかし、良く見ると変である。まず、Nicknameの最後の文字が切れている。更にプロバイダに接続しようとしてESSIDを設定したいのだが、それが出来ない。
# iwconfig eth1 eth1 IEEE 802.11g ESSID:off/any Nickname:"hoge.local.j" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated : # iwconfig eth1 essid "GEGEGE" # iwconfig eth1 eth1 IEEE 802.11g ESSID:off/any Nickname:"hoge.local.j" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated :
「ネットワーク設定」ツールでは設定されている様に見えるが、iwconfigで見ると設定されていない。
ちなみにニックネームは設定できるが、最後の一文字が認識されない。
# iwconfig eth1 eth1 IEEE 802.11g ESSID:off/any Nickname:"hoge.local.j" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated : # iwconfig eth1 nick "hoge"" # iwconfig eth1 eth1 IEEE 802.11g ESSID:off/any Nickname:"hog" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated :
ニックネームはともかくESSIDが設定できないのでプロバイダのサービスを受けることができない。
(ちなみに iwlist eth1 scanning を実行するとちゃんとスキャニングはできる。)
非常に惜しいところまで出来ているだが、残念だ。
まぁ、当面はこのInspiron 1501を持ち歩いたり無線LANを使う予定はないので、bcm43xx-fwcutterを使って古いファームで使えるだけでヨシとしよう。