読者です 読者をやめる 読者になる 読者になる

@半径とことこ60分

人間の認知範囲なんてそんなもんさと、鳥が囀った

Plamo-5.2/無線LANに挑戦(接続OK)

さて、せっかくの無線LAN搭載vaioくんですから、無線で接続したいですよね。

と言うことで、やってみようと思いますが、それにしても、Plamoでの無線LANの情報が少ないですね。ただ、「DHCPでアドレスが取得出来ない」で、/etc/rc.d/rc.inet1 に設定スクリプトがあることを見ていますので、まあ何とかなるでしょう。

まず、そもそも内蔵無線LANを認識しているんでしょうか?

# iwconfig 

wlan0     IEEE 802.11bg  ESSID:off/any
              Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm
              Retry  long limit:7   RTS thr:off   Fragment thr:off
              Encryption key:off
              Power Management:on
lo           no wireless extensions.
eth0       no wireless extensions.

 wlan0として認識しています。良かったです。認識していなければ、ドライバを持ってきて、コンパイルして組み込まなくてはならないところでした。ちなみにチップは、

# lspci | grep Wireless
02:0b.0 Ethernet controller: Atheros Communications Inc. AR5212/AR5213 Wireless Network Adapter (rev 01)

でした。

次は、rc.inet1 の設定の流れをみてみます。

  1.  /proc/cmdline に<wlan>があれば設定開始、なければ有線でつなぐ
  2. iwlist wlan0 scan でアクセスポイントと暗号化方式を表示
  3. Enter SSID: を表示して入力させる
  4. WPA、WEPに応じてパスフレーズを入力させる
  5. wpa_passphrase を使って、/etc/wpa_supplicant.conf を作成
  6. wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0 でAPに接続
  7. dhclient wlan0

こんな感じです。

/proc/cmdline って何でしょう? システムのブートパラメータみたいなんですが、これがどうやってもうまくいきません。と言うより、その一行をコメントアウトすれば試せるじゃないとの気持ちがあるので、早々と諦めたという方が正しいです。

ということで、二ヶ所ある<wlan>の条件式をコメントアウトしてreboot
Enter SSID: が出ましたので、入力。ところで、私はSSIDをステルスにしているのですが大丈夫でしょうか? 多分、<Hidden> WPAと表示されているのがそうですね。
続いて、WPA key: と出ますので、入力。パスフレーズは表示されません。
おお! 2,3秒で wlan0: associated とログが出てログインプロンプトまで進みました。

成功です。無事、アドレスを取得しています。wpa_supplicant.conf も出来ています。 

# cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
        ssid="入力したSSID"
        scan_ssid=1
        psk=入力したパスフレーズが暗号化されたもの
}

調べてみると、scan_ssid=1 はスクリプト自動的に入れたオプションなんですが、これを入れておくとステルスAPでもOKみたいです。

これで無線LANも解決と行きたいところですが、このスクリプト rc.inet1 ですと、毎回、SSIDパスフレーズを入れなくてはなりません。それに、他のAPに接続したい時はどうするかも問題です。

無線LANの自動接続スクリプトが必要になりますが、とりあえずは、wpa_supplicant.conf があれば接続を試みることに変更してOKとしておきます。

(2014/2/2追記)

複数のAPに接続したい場合は、wpa_supplicant.conf に network 以下を複数書いておけば自動的に探してつないでくれるようです。

network={
        ssid="入力したSSID"
        scan_ssid=1
        psk=入力したパスフレーズが暗号化されたもの
}
network={

        ssid="入力したSSID"
        scan_ssid=1
        psk=入力したパスフレーズが暗号化されたもの
}