现在的位置: 首页 > 综合 > 正文

Linux下安装tpacpi-bat 控制thinkpad 充电阈值

2013年06月29日 ⁄ 综合 ⁄ 共 1388字 ⁄ 字号 评论关闭

简介: 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控制独立显卡的关闭(双显卡的机型).

(4) 下载tpacpi_call解压: https://github.com/teleshoes/tpacpi-bat
需要编辑一下 vim  tpacpi-bat

修改 "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

/usr/local/bin/tpacpi-bat -s ST 0 70
/usr/local/bin/tpacpi-bat -s SP 0 90

开机会通过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

抱歉!评论已关闭.