2009年2月26日木曜日

linux-2.6.28でのIEEE802.11a

Ubuntu 9.04のカーネルに2.6.28系が来ているので使っていたが、
2.6.28-8.21でCONFIG_WIRELESS_OLD_REGULATORY=nになった影響か、
家で使っている802.11aのチャンネルが使えなくなった。802.11b/gは使えた。

wireless.kernel.orgのキュメントによるとそういった情報をカーネル外に出して、udev経由で設定するようになったらしい。

どこかで見たけど、分離するようにしたのは、カーネル内に入っている情報はUS, JP, EUだけしかなく、しかもカーネルモジュールのパラメータ(cfg80211だな)でしか設定できないからだったはず。


カーネルイメージの依存関係でwireless-crdaが入ってきたが、
変更方法をみると、iwはまだubuntuにパッケージが無いし、wpa_supplicantも0.66だった。
しかもwpa_supplicantを直接使ってないので、wicd(最近NetworkManagerから乗り換えた)が
COUNTRY設定に対応してくれないと多分面倒っぽい。設定ファイルに一行足すだけかも知れないけど。

結局、debianのiw(と関連パッケージ)を入れて解決した。
設定は変更方法の所に書いてあった通りやればok.

sudo iw reg set JP

これをやったあとに今まで通りscanするだけで、自宅のAPが発見できるようになった。

追記
よく分からんが、環境変数COUNTRY=JPを設定して、
/sbin/crdaを実行するだけで設定できた。
iw無しでも平気だったようだ…
前やったときは駄目だったんだけどな…
(ちなみにwireless-crda 1.6は壊れてる。レポートしようとしたらすでにレポートされてた)



0 件のコメント:

コメントを投稿