無線LANの高速化(PCMCIAカードの利用)


 無線LANについてはUSBタイプのものの使用が可能となったが、どうも速度がもう一つで特に動画の再生などではバッファリングで再生が停止してしまうことが頻発した。

 原因を考えてみるにPentium3で1.2Gのノートではよどみなく再生されていることから
  • CPUの速度不足
  • 回線速度の不足
があるようである。

 CPUの速度はあるにしても1200対850でさほど差は無いようである。
 しかし、回線速度については54Mのアダプターを使ってはいるが、どうもUSBは12Mの1.1のようであり、これが原因のではないかと思い付いた。

 そこで速度を計ってみると6Mb/s程度で別のノートの20Mと比べると可なり遅い。これを改善する方法としては、インタフェースは他にはPCMCIAしか無いので、これを使うことを考える。
 私が所有しているPCMCIAカードはメルコのWLI-CB-G54だけなのでこれが使えないかネットを調べる。
  これまでもTurbolinux時代にndiswrapperを使った方法は経験があったが結構手順がややこしく躊躇していたのであるが、ネットを調べて いるうちにDebianのetchではカーネルに実装されておりファームウェアを導入すれば簡単に動くことを発見。方法もいくつかのホームページから情報 を得て以下のように行った。

  1. http: //ftp.yz.yamagata-u.ac.jp/debian/pool/contrib/b/bcm43xx-fwcutter/から bcm43xx-fwcutterなるプログラムをいただいてくる。これはWindowsのドライバーから必要なファームを切り取るプログラムのようであ る。
  2. WLI-CB-G54が使っているチップであるブロードコム4306のファームが入った         http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.oを頂いてくる。
  3. bcm43xx-fwcutterでwl_apsta-3.130.20.0.oからファームを切り取る。
  4. 切り取ったファームを所定の/lib/firmware/にコピーする
  5. dpkg --configure -a でよく分からないが初期化するようである。
 以上であり顛末は以下のとおり。

1.bcm43xx-fwcutterの取り込み
   頂いてくるbcm43xx-fwcutterであるがこのページには何種類もあり、最新の物から試してみたが、何とかbcm43xx-fwcutterを取り出せたのは一番古いbcm43xx-fwcutter_005-2_i386.debであった。
   状況は、以下の通りエラーで終了するがそれは全て自動で動作するプログラムのようで取りに行ったwl_apsta.oのあるはずのページが無かったためで目的のbcm43xx-fwcutterは以下の通り取り出せていた。

debian:/home/anabuki/Desktop# dpkg -i bcm43xx-fwcutter_005-2_i386.deb
(データベースを読み込んでいます ... 現在 83678 個のファイルとディレクトリがイン ストールされています。)
bcm43xx-fwcutter 1:006-4 を (bcm43xx-fwcutter_005-2_i386.deb で) 置換するための 準備をしています ...
bcm43xx-fwcutter を展開し、置換しています...
bcm43xx-fwcutter (005-2) を設定しています ...
--19:09:02--  http://boredklink.googlepages.com/wl_apsta.o
           => `wl_apsta.o'
boredklink.googlepages.com をDNSに問いあわせています... 74.125.47.118
boredklink.googlepages.com|74.125.47.118|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
19:09:03 エラー 404: Not Found。

dpkg: bcm43xx-fwcutter の処理中にエラーが発生しました (--install):
 サブプロセス post-installation script はエラー終了ステータス 1 を返しました
以下のパッケージの処理中にエラーが発生しました:
 bcm43xx-fwcutter

・取り込めたことの確認
debian:/home/anabuki/Desktop# bcm43xx-fwcutter
bcm43xx-fwcutter version 1:005

Usage: bcm43xx-fwcutter [OPTION] [driver.sys]
  -l|--list             List supported driver versions
  -i|--identify         Only identify the driver file (don't extract)
  -w|--target-dir DIR   Extract and write firmware to DIR
  -a|--alt-iv           Extract alternative initvals (only 3.10.x.x)
  -p|--postfix ".FOO"   Postfix for firmware filenames (.FOO.fw)
  -v|--version          Print bcm43xx-fwcutter version
  -h|--help             Print this help

Example: bcm43xx-fwcutter bcmwl5.sys
         to extract the firmware blobs from bcmwl5.sys

 次に上手く動かなかったバージョンでの結果を示す。
debian:/home/anabuki/Desktop# dpkg -i bcm43xx-fwcutter_006-4_i386.deb
未選択パッケージ bcm43xx-fwcutter を選択しています。
(データベースを読み込んでいます ... 現在 83669 個のファイルとディレクトリがイン ストールされています。)
(bcm43xx-fwcutter_006-4_i386.deb から) bcm43xx-fwcutter を展開しています...
dpkg: 依存関係の問題により bcm43xx-fwcutter の設定ができません:
 bcm43xx-fwcutter は以下に依存 (depends) します: libc6 (>= 2.7-1) ...しかし:
システム上の libc6 のバージョン は 2.3.6.ds1-13etch5 です。
dpkg: bcm43xx-fwcutter の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
以下のパッケージの処理中にエラーが発生しました:
 bcm43xx-fwcutter
debian:/home/anabuki/Desktop# dpkg -i bcm43xx-fwcutter_006-3_i386.deb
(データベースを読み込んでいます ... 現在 83678 個のファイルとディレクトリがイン ストールされています。)
bcm43xx-fwcutter 1:006-4 を (bcm43xx-fwcutter_006-3_i386.deb で) 置換するための 準備をしています ...
bcm43xx-fwcutter を展開し、置換しています...
dpkg-deb (サブプロセス): buffer_copy 内の短い読み取り (コピー中にパイプへの書き 込みに失敗しました)
dpkg-deb: サブプロセス paste はエラー終了ステータス 2 を返しました
dpkg: bcm43xx-fwcutter_006-3_i386.deb の処理中にエラーが発生しました (--install):
 壊れているファイルシステム上の tar ファイル - パッケージアーカイブが壊れていま す
以下のパッケージの処理中にエラーが発生しました:
 bcm43xx-fwcutter_006-3_i386.deb


2.ファームの入ったwl_apsta-3.130.20.0.oの取得
  ブラウザからこのアドレスで容易に取得できた。          
        http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o

3.ファームの切り取り
  debian:/tmp/work# bcm43xx-fwcutter /home/anabuki/Desktop/wl_apsta-3.130.20.0.o

  filename   :  wl_apsta.o
  version    :  3.130.20.0
  MD5        :  e08665c5c5b66beb9c3b2dd54aa80cb3
  microcodes :  2 4 5 11
  pcms       :  4 5

  microcode  :  2
  revision   :  0x0127
  patchlevel :  0x000e
  date       :  2005-04-18
  time       :  02:36:27

  microcode  :  4
  revision   :  0x0127
  patchlevel :  0x000e
  date       :  2005-04-18
  time       :  02:36:27

  microcode  :  5
  revision   :  0x0127
  patchlevel :  0x000e
  date       :  2005-04-18
  time       :  02:36:27

  microcode  :  11
  revision   :  0x0127
  patchlevel :  0x000e
  date       :  2005-04-18
  time       :  02:36:27

extracting bcm43xx_microcode2.fw ...
extracting bcm43xx_microcode4.fw ...
extracting bcm43xx_microcode5.fw ...
extracting bcm43xx_microcode11.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 ...
debian:/tmp/work# ls
bcm43xx_initval01.fw  bcm43xx_initval07.fw    bcm43xx_microcode4.fw
bcm43xx_initval02.fw  bcm43xx_initval08.fw    bcm43xx_microcode5.fw
bcm43xx_initval03.fw  bcm43xx_initval09.fw    bcm43xx_pcm4.fw
bcm43xx_initval04.fw  bcm43xx_initval10.fw    bcm43xx_pcm5.fw
bcm43xx_initval05.fw  bcm43xx_microcode11.fw
bcm43xx_initval06.fw  bcm43xx_microcode2.fw

 で展開される。

4./lib/firmware/にコピー
debian:/tmp/work# cp *.fw /lib/firmware/

5.リセット
debian:/tmp/work# dpkg --configure -a
bcm43xx-fwcutter (005-2) を設定しています ...

6.無線LANカード(WLI-CB-G54)の挿入
 無線LANカードを挿入してiwconfigで確認する。
# iwconfig

eth1      IEEE 802.11b/g  ESSID:"00074083148D"  Nickname:"Broadcom 4306"
          Mode:Managed  Frequency=2.484 GHz  Access Point: Invalid
          Bit Rate=1 Mb/s   Tx-Power=15 dBm
          RTS thr:off   Fragment thr:off
          Encryption key: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

 こ のようにアクセスポイントを検出出来なかったが、これはアクセスポイントであるWLA−G54のモードが11g(54M)-turboであったため であり、Access Point: Invalidとのメッセージで接続できなかった。これもさるページに11g(54M)/11b(11M)-Autoにしないと接続出来ないとの記述があり下 記のように変更することで難なく接続された。

 アクセスポイントへの接続を確認後、
# /sbin/dhclient eth1
 でIPアドレスを取得して接続確認のpingを打ってみる。
 接続確認後伝送速度を比較すると、FTPでのファイル転送でUSBタイプのアダプターの6Mb/sから17Mb/sと約三倍となり満足いく結果が得られた。

○USBアダプターの場合
debian:/home/anabuki# ftp 192.168.0.62
Connected to 192.168.0.62.
220 ProFTPD 1.2.10 Server (Debian) [192.168.0.62]
Name (192.168.0.62:anabuki): xxxxxxx
331 Password required for xxxxxxx.
Password:
230 User hideyuki logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put movie54.mpg
local: movie54.mpg remote: movie54.mpg
200 PORT command successful
150 Opening BINARY mode data connection for movie54.mpg
226 Transfer complete.
23021572 bytes sent in 32.30 secs   (696.1 kB/s)
ftp>

○54MのPCMCIAカードの場合
debian:/home/anabuki# ftp 192.168.0.62
Connected to 192.168.0.62.
220 ProFTPD 1.2.10 Server (Debian) [192.168.0.62]
Name (192.168.0.62:anabuki): xxxxxxx
331 Password required for xxxxxxx.
Password:
230 User hideyuki logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put movie54.mpg
local: movie54.mpg remote: movie54.mpg
200 PORT command successful
150 Opening BINARY mode data connection for movie54.mpg
226 Transfer complete.
23021572 bytes sent in 10.23 secs   (2198.5 kB/s)


無線LANアクセスポイントの設定変更