懸案としていた無線LAN再び

ビデオドライバの設定も一段落したので、もう一度無線。

5月7日のところで一応は無線LANが利用できるようになったという報告をしたが、懸案事項として11Mbps(802.11b)の通信しか出来ていないようで、54Mbps(802.11a/g)にトライをしてみる。

DELL Inspiron 1501では購入時に無線LANの構成を決めることが出来るが、私の場合は802.11a/b/gが利用できる「Dellワイヤレス1490デュアルバンドWLAN Mini-Card」をオプションとして付けている。これはBroadcomのBCM4310 UART(rev 01)を搭載していた。

前回は「bcm43xx-fwcutter」(ファームウェア・カッター)といツールを使ってWindows用のBroadcomの無線チップのドライバからファームウェアを切り出して使う、という方法だった。今回も基本的には同じだが、前回使用したWindows用のドライバパッケージが海外のサイトからダウンロードしたものだったが、今回は日本のサイトからダウンロードしたものを利用する。

以下の手順である。

1. bcm43xx-fwcutterをインストールする
パッケージマネージャを使って「bcm43xx」で検索すると「bcm43xx-fwcutter - 005-1.fc6.x86_64」がリストされるのでチェックしてインストールする。

2. bcmlw5.sys を入手する
bcm43xx-fwcutterをインストールすると /usr/share/doc/bcm43xx-fwcutter-005/README ができるのでこれを参照、もしくはググって「bcmwl5.sys」を含んだWindows用のドライバをダウンロードしてくる。Inspiron 1501にWindowsがバンドルされている場合は、bcmwl5.sysがあるが、bcm43xx-fwcutterで扱えるファームウェアのバージョンは限定されていて、WindowsにバンドルされているVer 4.100.15.5は残念ながら扱えなかった。
仕方ないのでネットからVer 3.104.64.52のものを拾ってきた。

3. bcm43xx-fwcutterを使ってBCM4310のファームをインストールする

# bcm43xx-fwcutter -w /lib/firmware/ bcmwl5.sys 

  filename   :  bcmwl5.sys
  version    :  3.104.64.52
  MD5        :  3ccb53e4f0f5e9f4ae270cb2924cb941
  microcodes :  2 4 5 
  pcms       :  4 5 

  microcode  :  2
  revision   :  0x0123
  patchlevel :  0x0021
  date       :  2005-01-22
  time       :  19:48:06

  microcode  :  4
  revision   :  0x0123
  patchlevel :  0x0021
  date       :  2005-01-22
  time       :  19:48:06

  microcode  :  5
  revision   :  0x0123
  patchlevel :  0x0021
  date       :  2005-01-22
  time       :  19:48:06

extracting bcm43xx_microcode2.fw ...
extracting bcm43xx_microcode4.fw ...
extracting bcm43xx_microcode5.fw ...
extracting bcm43xx_pcm4.fw ...
extracting bcm43xx_pcm5.fw ...
extracting bcm43xx_initval01.fw ...
extracting bcm43xx_initval02.fw ...
extracting bcm43xx_initval03.fw ...
extracting bcm43xx_initval04.fw ...
extracting bcm43xx_initval05.fw ...
extracting bcm43xx_initval06.fw ...
extracting bcm43xx_initval07.fw ...
extracting bcm43xx_initval08.fw ...
extracting bcm43xx_initval09.fw ...
extracting bcm43xx_initval10.fw ...

ちなみにbcm43xx-fwcutterで扱えないバージョンのファームの場合は次のようなメッセージが出る。

# bcm43xx-fwcutter -w /lib/firmware/ bcmwl5.sys 
Sorry, the input file is either wrong or not supported by bcm43xx-fwcutter.
This file has an unknown MD5sum b89bcf0a25aeb3b47030ac83287f894a.

コマンド実行後にいくつかのファームが切り出されている。(実行前は/lib/firmwareは空である。)

# ls /lib/firmware/
bcm43xx_initval01.fw  bcm43xx_initval06.fw  bcm43xx_microcode2.fw
bcm43xx_initval02.fw  bcm43xx_initval07.fw  bcm43xx_microcode4.fw
bcm43xx_initval03.fw  bcm43xx_initval08.fw  bcm43xx_microcode5.fw
bcm43xx_initval04.fw  bcm43xx_initval09.fw  bcm43xx_pcm4.fw
bcm43xx_initval05.fw  bcm43xx_initval10.fw  bcm43xx_pcm5.fw

4. ネットワーク設定で無線LAN(Eth1)を起動する
「ネットワーク設定」の「設定」からSSID(ESSID)やWEPキーを設定した上で起動する。これで無線LANが使える様になる。起動時の/var/log/messageの内容は以下の通り。

May 12 10:10:03 hoge kernel: bcm43xx: set security called, .active_key = 0, .level = 1, .enabled = 1, .encrypt = 1
May 12 10:10:03 hoge kernel: SoftMAC: Associate: Scanning for networks first.
May 12 10:10:03 hoge kernel: SoftMAC: Associate: failed to initiate scan. Is device up?
May 12 10:10:03 hoge kernel: bcm43xx: PHY connected
May 12 10:10:04 hoge kernel: bcm43xx: Microcode rev 0x123, pl 0x21 (2005-01-22  19:48:06)
May 12 10:10:04 hoge kernel: bcm43xx: Radio turned on
May 12 10:10:04 hoge kernel: bcm43xx: Chip initialized
May 12 10:10:04 hoge kernel: bcm43xx: 32-bit DMA initialized
May 12 10:10:04 hoge kernel: bcm43xx: Keys cleared
May 12 10:10:04 hoge kernel: bcm43xx: Selected 802.11 core (phytype 2)

また、無線インターフェースの状態は次のとおり。

# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      IEEE 802.11b/g  ESSID:"1234"  Nickname:"hoge.local.jp"
          Mode:Managed  Frequency=2.484 GHz  Access Point: Invalid   
          RTS thr:off   Fragment thr:off
          Encryption key:ABCD-EF01-23   Security mode:open
          Link Quality=0/100  Signal level=-256 dBm  Noise level=-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

無線LANインターフェースが起動中(アクセスポイントの近辺ではない時は、ifconfig eth1 upで強制的にインタフェースをアップして)であれば、スキャニングすることも可能。

# iwlist eth1 scanning
eth1      Scan completed :
          Cell 01 - Address: 01:23:45:67:89:20
                    ESSID:"GEGEGE"
                    Protocol:IEEE 802.11b
                    Mode:Master
                    Channel:1
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Quality=75/100  Signal level=-82 dBm  Noise level=-256 dBm
                    Extra: Last beacon: 3876ms ago

このファームウェアのバージョンでは、iwconfigの出力の通り、802.11b/gをサポートしているが、802.11aはサポートしていない様である。ちなみにiwconfigコマンドでESSIDを変えたり、NICKnameを帰ることも確認できた。

実際にプロバイダに接続したところ802.11b(11Mbps)の接続になった。