Lavie MにCentOSを入れて使ってみるの続編です。
CentOS5.4を使って普通に使えるとこまでは行きましたが、このLavie Mには無線LANインターフェイスが付いている模様。
これを何とか使ってもうちょっと快適に使いたいことろです。
Linuxで無線LANを使うには
を参考にさせて頂きました。
環境は
・CentOS5.4(3.9からアップグレード)
・NEC Lavie M LM700/7
・無線LANルーター親機 Bufferlo AirStation WHR-G
まず付いている無線LANインターフェイスはなんなのかを調べたい。これは、GUIの「システム」-「管理」-「ネットワーク」で調べられるけど、コマンドではどう調べるのかも押さえておきたい。
コンピュータに接続されているハードウェア(OSが認識できている)は以下コマンドで調べられます。
で、ずらずらリスト出力されるのですが、一番下に
02:09.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
と出ているので、Atheros AR5001X+というのが無線LAN用のハードウェアだと分かります。
そして、このハードウェアを使用するためのドライバがあるはずですが、それは以下の場所を見てみます。
もっといい方法があるかも?
# ls /lib/modules/2.6.18-164.el5/kernel/drivers/net/wireless
すると、「ath5k」というモジュールがあるのがわかります。
このへんは感覚なのですが、「Atheros AR5001X+」と紐づけるにはまず
5k → 5000で、
athが会社名
なのでそれっぽいな、という判別方法しかないのですが、もっといい判別方法ないのかなぁ?
これのドライバはどこに読み込まれているのか?読み込まれているモジュールを取得するには、以下コマンドを使います。
これでath5kが読み込まれているのが確認出来ました。
というか、これは確認方法で、既にここまでは何もしなくても出来ていました。
全く勘違い編
最初は、iwconfigというコマンドを軸にいろいろ以下のようなことをやっていたが、これはあんまり意味がなかった。
無線LANデバイスをデスクトップのGUIの設定ツール(システム-管理-ネットワーク)から起動すると
Error for wireless request "Set Mode" (8B06):
Set failed on deice wlan0: invalid argument
Error for wireless request "Set requency"(8B04):
invalid argument "自動".
と出て失敗してます。
これの設定ファイルである、/etc/sysconfig/networks-scripts/ifcfg-wlan0を見てみると
とか書いてありました。確かにGUIの設定で「自動」って選択項目があったので、それをそのまま設定してくれちゃってたのかもしれませんが、
普通、ドライバに渡すパラメータが日本語というのはまだまだないんじゃないかと。
ここをコメントアウトして、再度起動してみると
Error for wireless request "Set requency"(8B04):
invalid argument "自動".
の方のエラーが消えたので、SetModeで失敗している原因ぽい「MODE=Auto」
をコメントにしたら、とりあえず起動のエラーは消えました。
というか、GUIの「ワイヤレスデバイス設定」のモードを「自動」にするとどうもおかしくなるので「管理」にしたら
この辺のifcfg-wlan0の記述がおかしなのも直ったみたいです。
この状態で、以下コマンドをやってみると、親機が見えているようでした。
# iwlist wlan0 scanning
Cell 02 - Address: (親機MACアドレス)
ESSID: (SSID)
:
見えているのであとちょっとだ!と思っていたのですが、ここからiwconfig系のことを何やってもだめ。
どうやっても、
Error for wireless request "Set requency"(8B04):
invalid argument "自動".
が出てしまい、うまく起動できないのです。
解決編
じゃあ、まず基本的なところから確認しようと思い、親機をブラウザ設定画面で確認しました。
親機の現在の設定はAOSS(AirStation One-Touch Secure Systemの略らしい)を使用しており、この暗号化レベルがいくつか並んでいます。
・WPA-PSK-AES
・WPA-PSK-TKIP
・WEP128
・WEP64
これの「WPA-PSK-AES」のところに(現在使用中)となっているので、これを使っているのだろうと想像しました。
WPAというのは、従来のWEPという規格の改良版ということなので、これはこのままでよさそうです。
WPAとは 【Wi-Fi Protected Access】 – 意味/解説/説明/定義 : IT用語辞典
ところで、このWPAでLinuxを無線LANクライアントにする場合、どうがんばっても先ほどのiwconfigなどを使ってもだめなようです。
そこで、wpa_supplicantというツールを使用するとつなぐことができると言うことを聞いたのでやってみました。
参考ページ:
wpa_supplicant
YANO’s digital garage – madwifiとwpa_supplicant
ごえごえの Linux 備忘録: CentOS+INSPIRON 700m 無線(WPA-PSK)設定
まずwpa_supplicantはyumで普通にインストール出来た。
# yum install wpa_supplicant
続いて、このwpa_supplicantの設定をします。
まずは、wpa_supplicantファイルを確認します。
とはいっても、今回インターフェイスやドライバーに特に変わったことはやっていないのでそのままでよいと思います。
# vi /etc/sysconfig/wpa_supplicant
:
INTERFACES="-i wlan0"
:
DRIVERS="-D wext"
:
次に、/etc/wpa_supplicant/wpa_supplicant.confです。
# vi /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="(設定されているSSID)"
proto=WPA
pairwise=CCMP
group=CCMP
psk=(パスフレーズ)
}
(設定されているSSID)は、AirStationの設定画面に設定されているSSIDを設定します。
(パスフレーズ)も、同じ欄にある「暗号化キー」をそのまま入れればいいのかなと思ったらやはり駄目で、
これをクライアント側で暗号化?するために、wpa_passphraseというツールを使います。
ためしに、SSIDをAAA、パスフレーズをAAAAAAAAでやると以下のように出力されます。
# wpa_passphrase AAA AAAAAAAA
network={
ssid="AAA"
#psk="AAAAAAAA"
psk=2f2681c2d3d2d8d1e・・・
これを先ほどのSSIDと暗号化キーで出た出力を設定すればよいです。
これでwpa_supplicantを起動します。