WPA-PSK with wlan0

EeePCを8.0-RELEASEに入れ替えた。STABLEにアップデートすべきだが、とりあえず使うのには問題ない状態に出来た。KDE 4.3.1はフォントの問題で特にThunderbirdが悲惨な状態だが、使用できないというほどではない。

EeePC S101は、8.0-RELEASEの問題か分からないが、ブートの最中にハングする時がある。

ata0: <ATA channel 0> on atapci0

の表示のあと、画面がブラックアウトしてハングする場合がある。次にブートに成功した時にfsckが文句を言わないので、ブートの途中でハングしているようだ。一度ブートしてしまうと、使用途中に問題は発生しない。

EeePCのath0は、8.0-CURRENTの途中から利用可能になっている。基本的にはWEPが使えればよいのだが、WPA-PSKを使えるようにした。

/boot/loader.conf

wlan_wep_load="YES"
wlan_tkip_load="YES"
wlan_ccmp_load="YES"
wlan_xauth_load="YES"
wlan_acl_load="YES"

を加える。全部必要なのかは分からない。wlan_xauthのみでも良いかもしれない。

まず、/etc/wpa_supplicant.confに次のような内容を書く。

network={
    ssid="ssid名"
    psk="事前に決めたキー"
}

毎回ファイル名を指定して起動する場合には、このファイル名でなくても良いようだが、これがデフォルトのようなので使用する。

8.0くらいから、FreeBSD無線LANはwlanを使うようだ。したがって、ifconfig ath0 up scanのようなことは出来ないと思う。まず、wlan0を作成する。

artemis# ifconfig wlan create wlandev ath0

次にwpa_supplicantを起動する。起動しっ放しにしないとダメなようなので、バックグラウンドで起動させてしまう。

artemis# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &

これで、アクセスポイントに接続できるようだ。

その後、DHCPならばdhclient wlan0とすれば良いし、アドレスを指定する場合は、

artemis# ifconfig wlan0 192.168.11.21 netmask 255.255.255.0

とすればよい。後はrouteを設定し、/etc/resolv.confを書き換えてそのネットワークに合わせる。

artemis# route delete default
artemis# route add default 192.168.11.1
artemis# cp /etc/resolv.conf.eoffice /etc/resolv.conf

これらをシェルスクリプトにして接続するようにしたら、接続は成功した。

使用を終了する場合には、バックグラウンドのwpa_supplicantをフォアグラウンドに戻し、^Cで終了してから終わらせている。

これが正しい方法なのかは、少し疑問がある。少なくともバックグラウンドでwpa_supplicantを動かしつづけなければならない。wpa_supplicantはログを流し続けるので、ターミナルを1つ占有してしまう。screenで対応すれば問題ないけれど。

長時間接続がないと、アクセスポイントとの接続が切れてしまうようだ。

あと、WPA-PSKとは関係ないが、ath0は時々止まる。

ath0: bb hang detected (0x80), reseting

というログがでる。