相棒のために軽いモバイルノートPCを新調(といっても中古だけど)したので、それまで彼女が使っていたノートPCが浮いた。いずれは家庭内サーバにでもしようと思っているが、それまでの間にいろんな Linux ディストリビューションをインストールして遊んでみようと思い立った。
で、ただインストールするだけじゃつまらないので、無線LANカードの認識に挑戦してみることにした。
PCのスペックは以下のとおり。
無線LANカードは、3年くらい前に買ったメルコの WLI-CB-G54。bcm4306 というチップを使っている。Linux 用ドライバはなく、したがって ndiswrapper で Windows 用ドライバを読み込んで使うということになる(という認識でいたが、後述のとおり、そんなことしなくてもいいディストロもでてきた。(よくよくBroadcom 43xxを見たら、カーネル 2.6.17-rc2 以降はドライバが組み込まれてると書いてあった。))。
なお、このカードはもう廃番になっている。型番からみると G54L とか G54S とかいうのが後継機種っぽいが、同じようにして動くのかどうかはしらない。
まずは vine4.0。カーネルは2.6.16だった。
ndiswrapper はデフォルトで入ってるバージョンじゃなくて 1.10 にした。ほかに bcm43xx-fwcutter と、lha をインストール。
ドライバは http://buffalo.jp/php/ldl.php?to=lan/wdrv_830.exe をダウンロード。vista に対応した最新版(9.00)だと bcmwl5.sys が入ってないので不可。この wdrv_830.exe のあるディレクトリに入って、
$ lha x wdrv_830.exe
でwindowsドライバを解凍。
$ cd wdrv_830/cbg54/win2000/
ここに bcmwl5.sys と netcbg54.inf がある。
$ bcm43xx-fwcutter bcmwl5.sys
するとファームウェアがずらずら解凍される。
これを
# cp *.fw /lib/firmware/
でごっそりコピー。もちろん mv でもいい。
# ndiswrapper -i netcbg54.inf
# modprobe ndiswrapper
# /etc/init.d/network restart
でカードのランプが光って動いた。WEP キーなどを設定したら接続も O.K.
続いて SUSE10.2。こちらはカーネル 2.6.18。
ndiswrapper 1.10 を入れようとするも入らない。bcm43xx-fwcutter も入らない。コンパイラがないせいだ。
インストールDVDから gcc と、automake も入れてからコンパイルし、インストール成功。
vine と同様に
$ bcm43xx-fwcutter bcmwl5.sys
# cp *.fw /lib/firmware/
をし、ひきつづき ndiswrapper を入れようとするがダメ。カーネルソースがないとか言ってるので、またまたインストールDVDからインストール。
そこでふと思いつき、DVD に ndiswrapper が入ってないか見てみたら、なんと入ってた。バージョンは1.25。で、早速インストール。
インストール後、コンソールから # ndiswrapper -i ・・・とやろうと思ったが、ndiswrapper なんてものはありませんとか言われる。
えー、インストール失敗かなあと、しばし悩む。
・・・と、ふと見るとカードのパワーランプが光ってる。ifconfig してみたらちゃんと動いてた。なんか拍子抜けした。
画面右下(自分はKDEを使用)のへんな穴ぼこのアイコンが無線LANのマネージャで、こいつでWEPキーとかを設定したらつながっちゃった。つながると穴ぼこは棒グラフに変わった。
余談だが、SUSEはデフォルトだとLANの設定がこのKNetworkManagerになってしまい、コンソールからのifup、ifdownが効かない。suになっても叱られてしまう。
次は Mandriva2007.0。これはカーネル 2.6.17 だった。
手順は SUSE とまるっきり一緒。あっさり動いた。