bananan_wの日記: Wii専用無線ネットワークを組むべく...
Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
な PCI の NIC を電機屋で買ってきた。Linuxで使えるかどうかは確認しなかった。無線LANルータを買わないのはポリシです☆
で、使えるかどうか調べてみると、Ndiswrapperというものを使って、Windows用ドライバを Linux で無理やり使えばイケるという情報まではたどり着いた。
自宅の環境(debian sarge)で、Ndiswrapper の最新(1.31)をコンパイルしてみたら、gcc-3.4未満じゃコンパイルさせてやらないぜ。っと言われて最新版はサクッとあきらめることに。1.5までヴァージョンを落としたらコンパイルできるふいんき。さっきまではコンパイルできてたんだけど、今はなぜかできなくなっちゃった。うーむ。何でだろう?ヴァージョンをさらに落として様子見かなぁ…なんか頻繁にヴァージョンあがってるから、新しいもの使いたい気分なんだけどなぁ。
---
色々調べてみた。NdisWrapper は Linux-2.6.17 から Broadcom の bmc43xx がカーネルに取り込まれたので不要。
そのかわり、ファームウェアの抜き出しが必要。
ファームは、bmc43xx-fwcutter というものがあるので、それを使って切り取る。で、切り取ったファームは /lib/firmware にコピーしておく。
wireless-tools というパッケージをインストールする。
# modprobe bmc43xx
で、eth1 として wireless な NIC が使えそうな感じに認識された。
# iwconfig eth1 rate 54M
# iwconfig eth1 mode Master
# iwconfig eth1 channel 10
# iwconfig eth1 essid essid
# iwconfig eth1 key xxxxxxxx
# iwconfig eth1
eth1 IEEE 802.11b/g ESSID:"xxxxx" Nickname:"Broadcom 4306"
Mode:Master Frequency=2.457 GHz Access Point: FF:FF:FF:FF:FF:FF
Bit Rate=54 Mb/s
RTS thr:off Fragment thr: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
イケそうなんだけど、イケないなぁ。
eth1 の ifup に失敗してしまう…
Masterでは動けないのかなぁ。ad-hocでやってみようかなぁ。
なんか根本的に駄目っぽいなぁ。
dmesg にこんなの出てるし...
bcm43xx: PHY connected
bcm43xx: Error: Microcode "bcm43xx_microcode5.fw" not available or load failed.
---
少し調べた。
これ、firmware をロードしようとしたときに、ファイルが見つからなかった時に出るエラーメッセージね。
んで、firmware の保存するべきディレクトリは、/lib/firmware の流派と /usr/lib/hotplug/firmware の流派と、/lib/hotplug/firmware の流派に別れてるみたい。バニラなカーネルでも、ドキュメントとかで色々混乱してるみたいね。ひじょーに具合の悪いところだ。
んで、どーも、カーネルのソース的には /usr/lib/hotplug/firmware みたいなんだけど、そこにおいておいても相変わらず出ちゃう。もうお手上げもーどかも。真面目にカーネル読む?
---
上がりました。hotplug 入れてなかったのが原因。
というわけで解決。
Wii専用無線ネットワークを組むべく... More ログイン