2008年5月19日 星期一

Linux Kernel 2.6.25 - ACPI 的電池狀態大變動

Standard
截至這篇文章為止,『Linux Kernel 』的 latest stable version 是 2.6.25-4,或許是因為 2.6.25 正式 release 才約短短一個月左右,多數人應該都還停留 2.6.24 以下的版本。原本用得好好的人,應該也不會去趕流行而換上最新的 kernel,畢竟人人都不願意當白老鼠呀。

今天,不怕死的將 EeePC 裡面 Debian 的 kernel 從 2.6.24-2 換成了 2.6.25-2 ,因為原本 Kernel 的 snd-hda-intel driver 一直無法正確驅動 EeePC 900 的聲音晶片〔EeePC 900 和 701 的晶片有出入〕,所以我換上最新版的 kernel 碰一碰運氣。不過運氣真是不錯, Linux kernel 2.6.25-2 讓 EeePC 900 不再是啞巴了,成功解決 EeePC 900 沒聲音的問題〔不然原本打算要跟 Asus 要 Source Code 了〕。

升級 kernel 後,一切看起來都很正常,唯獨 LXPanel 的電池狀態是壞掉的。追了一下 kernel source code 和 debien bugs 發現, /proc/acpi/battery 和 /proc/acpi/ac_adapter 已經在 2.6.25 被拿掉,統一轉移到 2.6.23 之後被加入的 /sys/class/power_supply。

這樣的大改動,意味著許多 userspace 的電池狀態偵測程式要做改寫才能在 Linux kernel 2.6.25 之後的系統上運作正常。還好,這問題並不大,至少支援 Hal 的電池狀態偵測程式可不用擔心,Hal 早在數個月前已處理好這問題,唯有少數幾個不愛 Hal 的程式會受到影響,如 LXPanel batt plugin 。:-(

後記

已著手在修正這問題,未來幾天在 LXDE 的 SVN 上,應該就會出現改好的 code。