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を使わなければならないようだ。ndiswrapperWindowsの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を使って古いファームで使えるだけでヨシとしよう。