Acer的笔记本用的Smart Battery System在Linux下电量的显示一直弄不起来。以前照着Gentoo论坛上的一篇文章试过,先要下载SBS的patch(在source-forge上),然后取得现在系统的dsdt,用什么Intel的iasl反编译,再用iasl编译然后包含进内核之类的,比较复杂,而且一直失败。(不知道别人是怎么成功的)
这次突发奇想,因为Ubuntu 6.06在我的机器上可以显示电量,那我为什么不试试看它的内核呢?于是下载了Ubuntu 6.06 dapper的内核源代码,用的2.6.17的版本。解压以后看到debian目录下面有个README-Ubuntu-External-Drivers说明中有SBS的驱动,在内核源代码的driver/acpi下面有一个文件acpi-sbs.c,应该就是这个使它能够显示Acer的电脑的电量吧。马上配置,搜索sbs发现是有这个选项的,在ACPI的Battery下面,但是很奇怪没有办法选上。马上Google,找到了这篇文章,原来是SBS依赖于I2C,搜索的时候因为依赖太多,I2C在最后面而没有注意到。选上I2C,然后就可以在Battery下看到SBS了。选上,然后就是编译安装了。重启以后modprobe acpi-sbs
果然电池信息出来了 :–)
原来想不用Ubuntu的内核自己在做patch试一下,但是进行了一半就遇到了以前的问题。sbs的patch有失败,然后就是编译dsdt失败,懒得自己改了,估计改了最后也没有用,所以最后放弃了。不过Ubuntu的内核现在在启动的时候有一些异常信息,不知道是为什么,慢慢研究什么原因了。
最后还是要谢谢Ubuntu了!如果当初不是因为升级X Window出问题的话估计我也不一定会回到Gentoo,Ubuntu还是很好的。