2012年4月19日木曜日

X60 に kernel 3.2.12 Atheros ドライバ



X60 の gentoo の kernel を 3.2.12 に上げたんだけど、ifconfig で
内蔵 Atheros 無線 LAN カードを on にしようとしたら以下のエラー。

SIOCSIFFLAGS: Operation not possible due to RF-kill

Web を調べる限りどうも rfkill というユーティリティでその有効無効を
設定できるよう。 emerge で rfkill 入れて rfkill list してみてみたら確
かに soft blocked というところが以下のように yes になってる

 0: phy0: Wireless LAN
     Soft blocked: yes
     Hard blocked: no

なので rfkill unblock 0 などとして off してみたところ上記の yes の
ところが no になった。これで行けるかと思い ifconfig wlan3 up してみ
たところ、また最初と同じエラー。はぁ?と思い rfkill list したのだが、
今度は下記のように Hard が yes。

 0: phy0: Wireless LAN
     Soft blocked: no
     Hard blocked: yes

えぇぇ〜。rmmod で ath5k を外して modprobe しなおしたりいろいろやった
がどうも ifconfig で interface を up にすると Hard blocked yes
になってしまう。

modinfo 見ても rfkill 関連のオプションなし。結局 ath5k のソースを見た
ところ、問答無用に rfkill を有効にしていて off る方法はなさげ。

が、以下のパッチ発見。

http://answerpot.com/showthread.php?3197032-ath5k%3A+Add+a+module+parameter+to+disable+hw+rf+kill+switch

単純にパラメータ増やして rfkill のところを無効にしている。ただ、このま
まじゃあたらないので手パッチした。手パッチしたのを diff 取ったので一応
以下にアップしておく。これでうまくいけばいいんだけど…

 http://www.fastriver.net/~ryo/mycontents/ath5k/base.c-3.2.12-gentoo.patch

あ、コンパイル終わったかな。以下の内容で /etc/modprobe.d/ath5k.conf
を作成して modprobe ath5k

options ath5k no_hw_rfkill_switch=1

どうも最初に rfkill unblock 0 しなくちゃならんのは変わらないが、その後
ifconfig wlan3 up できた! ad-hoc も OK だし。よかった!

0 件のコメント:

コメントを投稿