简介: thinkpad 使用tp_smapi (http://www.thinkwiki.org/wiki/Tp_smapi) 设置电池充电阈值, 此外tp_smapi 还附带了HDAPS(类似win下的硬盘保护).
但是 2013新出的几款Ivy Bridge 平台的thinkpad(X230,T430,T530), 已经无法使用tp_smapi了.
tp_smapi 项目也有两年多没有更新 : https://github.com/evgeni/tp_smapi
虽然tp_smapi已经无法支持T430, 但是我们还有tpacpi-bat可以使用.
安装过程:
(1) sudo yum install pmtools iasl
安装acpidump , iasl工具
(2) sudo acpidump -b -t DSDT -o /tmp/dsdt.aml
可能会返回Wrong checksum for FADT!错误, 忽略.
iasl -d /tmp/dsdt.aml
cat /tmp/dsdt.dsl | grep \\\\_SB\.PCI.*HKEY -o | uniq
记住输出的 T430上输出是"\_SB.PCI0.LPC.EC.HKEY"
(3) 下载acpi_call 代码并编译: https://github.com/mkottman/acpi_call
sudo make
sudo make install
sudo depmod -a
sudo modprobe acpi_call
载入acpi_call.ko之后,会多出一个 /proc/acpi/call "文件", 通过写入参数到这个文件, 实现与acpi_call的交互. tpacpi-bat就是通过这种方式控制电池阈值. 当然也可以通过acpi_call控制独立显卡的关闭(双显卡的机型).
修改 "my $aslBases = ..." 改为自己的, 例如:
my $aslBases = {
'default' => '\_SB.PCI0.LPC.EC.HKEY',
'ThinkPad W520' => '\_SB.PCI0.LPC.EC.HKEY',
'ThinkPad T430' => '\_SB.PCI0.LPC.EC.HKEY',
'ThinkPad T430u' => '\_SB.PCI0.LPCB.EC.HKEY',
};
然后把tpacpi-bat 移动到/usr/local/bin .
(5) 添加如下到开机脚本中, 比如/etc/rc.local
开机会通过tpacpi_call 向/proc/acpi/call 写入参数, 实现充电阈值的控制.
参考:
http://ubuntuforums.org/showthread.php?t=2148044
http://smitran.com/centos-6-thinkpad-t530-prolong-battery-life-with-tpacpi-bat/
http://blog.thekondor.net/2012/09/make-new-thinkpads-charge-thresholds.html