tp-smapi: 保護X200的電池

上週跟老友Rex碰面,聊到了共同的工作機台X200,我被問倒了。


Rex: 你有沒有 enable smapi 啊?

我: 甚麼甚麼?

Rex: 就是可以透過控制電池充電的機制來保護電池啊。

我: 喔,不知道那是甚麼鬼。


當然,最後結果當然是把這個功能開起來啦。剛剛我也上ThinkWiki把我的發現更新上去,
英文版全文在這裡,為了各位的幸福,翻譯成中文:
$ sudo aptitude install tp-smapi-source
(選擇性操作) $ sudo module-assistant get tp-smapi-source

目前Ubuntu 9.04的Driver太舊,你需要稍微更新:

/usr/src/modules/tp-smapi/hdaps.c

搜尋 "X61" 並且在 " HDAPS_DMI_MATCH_INVERT("LENOVO", "ThinkPad X61", HDAPS_ORIENT_SWAP | HDAPS_ORIENT_INVERT_X)," 和 "};" 中間加上以下這行:


HDAPS_DMI_MATCH_INVERT("LENOVO", "ThinkPad X200", HDAPS_ORIENT_SWAP | HDAPS_ORIENT_INVERT_X | HDAPS_ORIENT_INVERT_Y),
{ .ident = NULL }

然後請執行:

$ sudo module-assistant build tp-smapi-source
$ sudo module-assistant install tp-smapi-source

接下來你需要讓這些driver可以在開機的時候載入,請修改以下檔案:

/etc/modules

並且在檔案末端加入以下幾行:

thinkpad_ec
tp_smapi
hdaps

要測試HDAPS搖桿的話:

$ sudo modprobe thinkpad_ec tp_smapi hdaps
$ sudo aptitude install hdaps-utils
$ hdaps-gl

接下來我們可以透過指定開始充電以及最高的充電容量來減少電池充電的次數,藉此來保護電池,使其可以使用更久。請編輯以下檔案:

/etc/sysfs.conf

並且加入以下幾行:

# Make battery live longer
devices/platform/smapi/BAT0/start_charge_thresh = 50
devices/platform/smapi/BAT0/stop_charge_thresh = 90

你可以選擇重新開機或是用以下指令立即生效:

$ sudo su
# echo 50 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
# echo 90 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

留言

  1. 都忘記要讓 module 自動掛載的動作了,怪不得老是找不到 smapi,感謝前輩提醒囉 <(_ _)>

    回覆刪除

張貼留言

這個網誌中的熱門文章

大車人生: Yamaha FZ6N更換TPS、火星塞以及引擎調校

感恩啊!漢音輸入法!

[鳳梨外貿社] 1988 Austin Mini Automatic 奧斯丁 迷你上架銷售