Chinaunix首页 | 论坛 | 博客
  • 博客访问: 343933
  • 博文数量: 93
  • 博客积分: 4578
  • 博客等级: 上校
  • 技术积分: 1005
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-13 08:12
文章分类
文章存档

2012年(2)

2011年(45)

2010年(46)

分类: LINUX

2010-11-29 09:12:48

Linux的好处不用讲,缺点也一大堆,实在是我等懒人不太好使用的。比如我的工作笔记本T61,坚持3年用下来,因为 RHEL5.x操作系统没有集成电池充放保护模块,电池满的时候交流电也还在充,弄坏了2块电池,虽然是资本家出钱不心疼,总归不爽。朋友推荐 ubuntu下面有个tp_smapi模块什么的,可以像windows一样保护电池,google一把,发现fedora这方面居然落伍了,没有将 upstream集成进来,可惜可惜,只有麻烦点DIY了。

根据forum.thinkpads.com上高手的指导,搞这个东东需要先使用akmods,装好akmod-tp_smapi之后,再进行modprobe装载smapi电池管理模块,最后设置充电起始和终止的阈值,细节如下:

  1. 在下载为Fedora编译好的akmod模块,版本低点没关系。
  2. 使用rpm -ivh akmod-tp_smapi-0.40-1.fc11.i686.rpm安装之,注意,这个rpm需要kernel devel的支持
  3. 调用service akmods restart,之后rpm -qa|grep smapi一下,可以看到为F14有关kernel弄好的rpm已经生成安装了
  4. 这时候可以使用modprobe -l| grep smapi看看模块是不是ready了,随后modprobe tp_smapi装载模块试试。
  5. 于是乎,可以使用下面的指令设置充电阈值,BAT表示笔记本默认的电池(BAT1好像是BIOS电池,不用管它)

# echo 20 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
# echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

做到这里,基本上4和5是在每次需要启用这个功能之前必须做的,因此,不如搞个service,缺省启动,用起来方便(/etc/init.d/tp_smapi):

#!/bin/sh
#
# chkconfig: 12345 21 80
. /etc/init.d/functions
SMAPILOCK=/var/lock/tp_smapi_lock
start()
{
echo -n $”Starting tp_smapi service: “
/sbin/modprobe -q tp_smapi
echo 20 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
echo
touch $SMAPILOCK
echo
}
stop()
{
/sbin/modprobe -r tp_smapi
rm -f $SMAPILOCK
}
status()
{
status=0
if [ -f $SMAPILOCK ]; then
echo “RUNNING”
else
echo “UNUSED”
status=1
fi
return $status
}
case “$1″ in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
exit $?
;;
*)
echo “Usage: $0 {start|stop|status|restart}”
exit 1
;;
esac
阅读(1589) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-30 11:02:05

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com