気温があがってきて、ThinkPad X61 のパームレストも熱くなる季節になってきました。
以前は http://blog.tmtm.org/tommy/?date=20081006#p01 にあるような設定で、無線LANを省電力化できたのですが、最近は、iwconfig wlan0 power on とやればいいようです。
ところが、X61 ではこれは効きません。
# iwconfig wlan0 power on Error for wireless request "Set Power Management" (8B2C) : SET failed on device wlan0 ; Operation not supported.
どうやら iwlagn の省電力機構に問題があるようで無効にされているようです。
https://bugs.launchpad.net/ubuntu/+bug/367121
とは言っても熱くてかなわんので、無効にしてあるのを無効にしました。
$ mkdir /tmp/x $ cd /tmp/x $ apt-get source linux-backports-modules-wireless-2.6.32-22-generic-pae $ cd linux-backports-modules-2.6.32-2.6.32 $ vi updates/compat-wireless-2.6/drivers/net/wireless/iwlwifi/iwl-4965.c 2239行目の .broken_powersave = true を false に変更。 $ dpkg-buildpackage -d -rfakeroot -us -uc ... $ cd .. $ sudo dpkg -i linux-backports-modules-wireless-2.6.32-22-generic-pae_2.6.32-22.13_i386.deb
リブート後に「iwconfig wlan0 power on」すると、エラーにならず、「Power Management:on」となり、ちゃんと動いているようです。
% sudo iwconfig wlan0 power on % iwconfig wlan0 wlan0 IEEE 802.11abgn ESSID:"xxxxxxxxxxxx" Mode:Managed Frequency:2.462 GHz Access Point: xx:xx:xx:xx:xx:xx Bit Rate=1 Mb/s Tx-Power=15 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on Link Quality=60/70 Signal level=-50 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ちゃんと測ったわけではないですが、パームレストの熱さもマシになったようです。
deb パッケージの作り方には詳しくないので、変なことしてるかもしれません。あと、何か不具合があって機能を無効にしてあったものなので、有効にすることで何か問題が起きるかもしれません。