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は壊れてる。レポートしようとしたらすでにレポートされてた)



2009年2月3日火曜日

gnome-terminalをgnome外で動かす

wubiでセットアップした環境ではgnome上でgnome-terminalが問題なく使えるのに、
イメージを共有しているcoLinux側では、gnomeを動かしていないからか動かなくなった。


$ gnome-terminal
Failed to contact the GConf daemon; exiting.

検索してみると、gnome起動前にgconfにアクセスできないというのを見つけた。
GConf-2.22ならいけてGConf-2.24でこの状況になるらしい。
workaroundにしたがって次のようにする。


eval `dbus-launch --sh-syntax`
gconftool-2 --spawn

上記の二つのコマンドを実行しておけば、gnome-terminalが起動できる。

上記のコマンドを実行したセッションが生きている状態ならば、他のシェルからでも、
環境変数DBUS_SESSION_BUS_ADDRESSを設定するだけで大丈夫。