Welcome 微信登录

首页 / 操作系统 / Linux / 在Fedora 14下保护thinkpad笔记本电池

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

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

点击这里下载为Fedora编译好的akmod模块,版本低点没关系。
解压后使用rpm -ivh akmod-tp_smapi-0.40-1.fc11.i686.rpm安装之,注意,这个rpm需要kernel devel的支持
调用service akmods restart,之后rpm -qa|grep smapi一下,可以看到为F14有关kernel弄好的rpm已经生成安装了
这时候可以使用modprobe -l| grep smapi看看模块是不是ready了,随后modprobe tp_smapi装载模块试试。
于是乎,可以使用下面的指令设置充电阈值,BAT表示笔记本默认的电池(BAT1好像是BIOS电池,不用管它)  
  1. # echo 20 > /sys/devices/platform/smapi/BAT0/start_charge_thresh   
  2. # echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh  
# 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):
 
  1. #!/bin/sh   
  2. #   
  3. # chkconfig: 12345 21 80  
  4. . /etc/init.d/functions   
  5. SMAPILOCK=/var/lock/tp_smapi_lock   
  6. start()   
  7. {   
  8. echo -n $"Starting tp_smapi service: "  
  9. /sbin/modprobe -q tp_smapi   
  10. echo 20 > /sys/devices/platform/smapi/BAT0/start_charge_thresh   
  11. echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh   
  12. echo   
  13. touch $SMAPILOCK   
  14. echo   
  15. }   
  16. stop()   
  17. {   
  18. /sbin/modprobe -r tp_smapi   
  19. rm -f $SMAPILOCK   
  20. }   
  21. status()   
  22. {   
  23. status=0  
  24. if [ -f $SMAPILOCK ]; then   
  25. echo "RUNNING"  
  26. else  
  27. echo "UNUSED"  
  28. status=1  
  29. fi   
  30. return $status   
  31. }   
  32. case "$1" in   
  33. start)   
  34. start   
  35. ;;   
  36. stop)   
  37. stop   
  38. ;;   
  39. restart)   
  40. stop   
  41. start   
  42. ;;   
  43. status)   
  44. status   
  45. exit $?   
  46. ;;   
  47. *)   
  48. echo "Usage: $0 {start|stop|status|restart}"  
  49. exit 1  
  50. ;;   
  51. esac  
#!/bin/sh## chkconfig: 12345 21 80. /etc/init.d/functionsSMAPILOCK=/var/lock/tp_smapi_lockstart(){echo -n $"Starting tp_smapi service: "/sbin/modprobe -q tp_smapiecho 20 > /sys/devices/platform/smapi/BAT0/start_charge_threshecho 80 > /sys/devices/platform/smapi/BAT0/stop_charge_threshechotouch $SMAPILOCKecho}stop(){/sbin/modprobe -r tp_smapirm -f $SMAPILOCK}status(){status=0if [ -f $SMAPILOCK ]; thenecho "RUNNING"elseecho "UNUSED"status=1fireturn $status}case "$1" instart)start;;stop)stop;;restart)stopstart;;status)statusexit $?;;*)echo "Usage: $0 {start|stop|status|restart}"exit 1;;esac每一次F14升级内核后,有关的akmod都要重新弄,偷懒写个脚本解决吧
  1. #!/bin/sh   
  2.   
  3. echo "looking for old rpms ..."  
  4.   
  5. for rpm in `sudo rpm -qa| grep smapi`   
  6. do  
  7.         echo undeploying $rpm ...   
  8.         sudo rpm -e $rpm   
  9. done   
  10.   
  11. echo "installing akmod ..."  
  12. sudo rpm -ivh akmod-tp_smapi-0.40-1.fc11.i686.rpm   
  13. sudo /usr/sbin/akmods --force   
  14. sudo service akmods restart   
  15.   
  16. echo "mod status:"  
  17. sudo modprobe -l | grep smapi   
  18.   
  19. echo "set battery thresholds ..."  
  20. sudo service tp_smapi restart   
  21.   
  22. echo "done."  
Linux下本地播放Youtube客户端Minitube 安装RHEL5.5下的MemcacheDB相关资讯      Fedora教程  Fedora 14 
  • Fedora安装之rpmfusion:获取 GPG   (03/02/2014 12:57:18)
  • Win7下安装Fedora 17注意点  (10/07/2012 20:47:42)
  • 编译自己功能定制的Fedora 7内核  (09/12/2012 09:31:23)
  • Fedora如何设置启动默认进入文本模  (04/06/2013 08:23:46)
  • Windows 7 + Fedora 17 双系统 硬  (10/07/2012 18:43:52)
  • Fedora下adsl共享上网  (09/11/2012 08:11:46)
本文评论 查看全部评论 (0)
表情: 姓名: 字数