-何度も挫折したLinux無線LAN。カーネル2.6.16ぐらいから主要チップについてはドライバが組み込まれるようになったのでだいぶ敷居が下がった。まとめ途中だが、一番楽なのはipw2200搭載無線LAN(Intel Centrino)ということになる。 #contents *2015年時点の情報 [#i599abf1] -主要なチップセットであれば、デフォルトドライバーは認識 -wpaを使うにはwpa_supplicantを使った、非常に複雑な手順が必要(いまだに・・・) **wpa-psk [#ba933260] -https://bbs.archlinux.org/viewtopic.php?id=156074 update_config=1 ap_scan=2 ctrl_interface=/var/run/wpa_supplicant network={ mode=0 scan_ssid=1 proto=WPA2 key_mgmt=WPA-PSK pairwise=CCMP group=CCMP bssid=<M.A.C. of Access Point> ssid="<text>" psk=<hex_string> } *前提 [#j19ba521] -まずは使用されている無線LANのチップを調べる -Windowsの様に自動認識でそのまま使えるケースはまれ。ドライバが組み込まれていたとしても対応するファームウェアを落としたりしなければいけないので有線LANをつないでおくこと。もしくはUSBメモリにファームウェアを入れておくといいかもしれない。 -どれだけがんばってもだめなときもある(特に特定のバージョンとかで)そんな時はディストリビューションを変えてみる。 *成功失敗マトリクス [#w0b7e3cd] **ipw2200 [#a463f30a] |ディストリビューション|結果|ファームウェアの有無|備考| |Ubuntu Linux 7.04|○|ファームウェア組込済み|| |Vine Linux 4.1|○|ファームウェア組込済み|ファームウェアがエラーをはく| |KNOPPIX 5.1.1|○|ファームウェア必要|| |Fedora7 LiveCD|○|ファームウェア必要|| **bcm43xx [#y7378ca0] 無線カードはBuffalo WLI-CB-G54。カーネル組み込みのドライバとファームウェアの相性がよろしくない。一見動いているように見えてsyslogに大量のエラーが出ていたりする。バイナリパッケージにndiswrapperが用意されていればそっちのほうが確実。 |ディストリビューション|結果|ファームウェアの有無|備考| |Ubuntu Linux 10.04|○||ndiswapperで運用中| |Ubuntu Linux 7.04|△|ファームウェア必要|bcm43xxfwcutterでファームウェア組み込める。syslogにエラーがときたま出る| |Vine Linux 4.1|○|ファームウェア必要|ndiswrapperで運用中。| |KNOPPIX 5.1.1|×|ファームウェア必要|ファーム組み込み失敗| |Fedora7 LiveCD|×|ファームウェア必要|要求するファームウェアがV4以上なのでファームウェアが見つからず| *KNOPPIX [#md8fe0fc] 実験対象はknoppix5.1.1。クライアントPCはLet'sNote CF-R3(ipw2200) **ipw2200 [#t6a0b100] -ドライバーのロードが行われていることを確認 dmsg | grep ipw2200 ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.4kmpr ipw2200: Copyright(c) 2003-2006 Intel Corporation ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2 ipw2200: Unable to load firmware: -2 ipw2200: failed to register network device ipw2200: probe of 0000:02:04.0 failed with error -5 ファームウェアがないので失敗している(ファームウェアはフリーではないのでしょうがないのだ)自分でとってくる。ドライバーバージョンがV1.1.1(調べるにはmodinfo ipw2200)なのでそれに相当するFirmware v3.0を下記のウェブサイトより取得 http://ipw2200.sourceforge.net/firmware.php 解凍して/usr/lib/hotblug/firmwareに ipw2200-bss.fwをコピー そのあとモジュールの削除とリロード rmmod ipw2200 modprobe ipw2200 モジュールの確認 iwconfigしてみる でネットワークのESSIDとWEPキーの設定 iwconfig eth1 essid ESSID iwconfig eth1 key restricted s:キー [キーのインデックス] key [キーのインデックス] iwconfig eth1 rate 54M で ifup eth1 IPの設定をDHCP任せにしていたらだめだったので手動設定したらついにうまくいった!!!これでもうまくいかない時はnetwork-setupのコマンドを打ち込んで設定してみるべし。 **bcm43xx [#b49f18f2] bcm43xx_microcode4.fw 上記ファームウェアがないと言われる。ファームウェア(3.104.64.52)を持ってきたがドライバーがエラーを吐いてそれ以上進めなかった。認識すらしてくれないのであきらめた。 bcm43xx: TODO: Incomplete code in keymac_write() at drivers/net/wireless/bcm43xx/bcm43xx_main.c:1128 *Ubuntu7.0.4日本語ローカライズ版 [#kf288f59] **ipw2200 [#a7e53fd9] 最初からファームウェアも入っている。後は接続情報さえ入れればOKという一番のハードルの低さ 入れたコマンドは2つだけ。これだと起動毎に入れなければならないのでちゃんと設定する(GUIツールは使わない) sudo iwconfig eth1 essid essid sudo iwconfig eth1 key restricted s:キー [2] key [2] -ネットワーク設定ツールではWEPキーのインデックスの設定ができない。このページの一番下の情報を下に設定してみて! **bcm43xx(WLI-CB-G54) [#fcd63ec4] このカードのチップはbcm43xxというものでこちらも最近のカーネルではドライバが組み込まれている。あとはファームウェアを取得すればいいのだがbcm43xx-fwcutterを実行するとなんとファームウェアの切りだしまで自動で行ってくれる。 **モジュールの再ロード [#pa306368] sudo rmmod bcm43xx sudo mobprobe bcm43xx このコマンドを実行した時点でLANカードのランプが付くはず(付いてなければ dmesgで原因を探ってみ) **ESSIDとWepキーの指定 [#a76925e5] GUIツールではキーのインデックスが指定できないのでコマンドラインでやるべし sudo iwconfig eth1 essid ESSID sudo iwconfig eth1 key restricted s:キー [キーのインデックス] key [キーのインデックス] ・パッケージマネージャーにて検索をクリックして「bcm」って入力。 ・bcm43xx-fwcutterをダブルクリック ・ダウンロード→終了→何か作業している→作業終了 ・再びパッケージマネージャーでbcm43xx-fwcutterを探しだし、 チェックボックスが□から■になっていることを確認 ・WLI-CB-G54HPに付いてきたCDを装填して2000用のbcmwl5.sysを探し出し、 ホームフォルダーにコピー ・GONME端末で sudo bcm43xx-fwcutter -w /lib/firmware bcmwl5.sys を入力(コピペ) ・なんか文字が一杯出て終了 ・システム管理→ネットワークでESSID、WEPキーを設定(WEPキーはASCII) パスワードは無しで設定 ・GONME端末でiwconfigを入力 ・Bit Rateを確認すると11Mb/sなので sudo iwconfig eth1 rate 54M 以上を入力し再度GONME端末でiwconfigを入力 ・Bit Rate=54Mb/sを確認 ・Firefoxを起動して速度を体感 *Fedora7 [#heab2574] -LiveCDで実験を行った **bcm43xx(WLI-CB-G54) [#s128f3ae] bcm43xxに関してはファームウェアがないので認識せず。メルコのサイトからbcmwl5.sysを手に入れ3.100ぐらいのバージョンだったけどこれでも古いといわれた!4.0以上でなければだめだというが、そのバージョンを手に入れるのが難しい。というわけで断念しました。 **ipw2200(Let's note CF-R3) [#i6e271c8] やっぱりファームウェアを追加して、ESSIDとWEPキーの設定をしてやり、システムネットワーク設定でIPアドレス固定にしてネットワーク再取得しないと駄目。 *VineLinux4.1 [#v87fc763] **ipw2200 [#t861f232] なんとファームウェア組み込み済み。ということで接続設定さえしてあげればそのままつながる。 **bcm43xx [#ocd5a1cf] 組み込みのドライバは試していないが、ndiswrapperがRPM(extras)で提供されるようになっているのでこちらで試した。見事成功 ***VineLinux4.1でndiswapperを利用して動かす手順 [#sa6de0d8] -バッファローのページよりドライバをダウンロードしてLinuxに持ってくる。USBメモリを使うのがお勧め。 lha x wdrv861.exe wdrv861b/CBG54/WIN2000/ -ドライバをインストールと確認 ndiswrapper -i netcbg54.inf ndiswrapper -l installed drivers: netcbg54 driver installed, hardware (14E4:4324) present (alternate driver: bcm43xx) -動かない上に干渉する標準のドライバをはずす rmmod bcm43xx blacklist bcm43xx -ndiswrapperを有効にする modprobe ndiswrapper 起動するたびに入力するのは面倒なので,/etc/rc.localの最後に以下の内容を加えます. /sbin/modprobe ndiswrapper *IPアドレスやWEPキーの設定 [#e3bf5f0f] コマンドラインで無事成功を確認したら、ネットワーク設定スクリプトに書いておく。GUIツールでの設定はWEPキーインデックス(これ設定してない人が多いのか?Web上でほとんど情報が得られなかった)を指定できないのでネットワーク設定ファイルに直接記述するしかない。 **RedHat系(RedHat,Fedora,CentOS,VineLinux) [#t7f8f1bd] -/etc/sysconfig/network-scripts/ifcfg-eth0 eth0の部分はiwconfigでワイヤレスと認識されているデバイス名に置き換える DEVICE=wlan0 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.102 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ESSID="ESSID" KEY="s:キーの文字列 [キーのインデックス] key [キーのインデックス]" **Debian系(Debian,Ubuntu) [#j9fa4cc2] -/etc/network/interfaces auto eth1 iface eth1 inet static wireless-essid ESSID wireless-key s:WEPキー [WEPキーインデックス] key [WEPキーインデックス] address 192.168.1.22 netmask 255.255.255.0 gateway 192.168.1.1 -再起動 /etc/init.d/network restart *Atheros系 [#ie1014e1] もうひとつUSB無線LANがある。こいつのチップはAtheros製でmadwifiというプロジェクトがドライバーを提供している(VineLinuxならパッケージもある)。こいつを動かすようにがんばろう。 #counter