原发: http://guo9310.blog.163.com/
1.先说说最近吵的比较厉害的关于硬盘Load_Cycle_Count的问题. 有人说这是一个严重的bug, 硬盘设计的寿命是60万次;有人说这个是笔记本硬盘自身的高级电源管理参数的默认设置太过严格,Linux只是用了这个默认设置而已; 有人说要问问硬盘厂商才知道这到底是不是个bug;有人说对于笔记本硬盘, 最主要的是对硬盘的震动保护, 这个参数无关紧要......
我的X61买了两个多月了, 其中winxp用了两个月, Load_Cycle_Count到了13000多, winxp和slackware一起用10天, Load_Cycle_Count到了17000多, 其实用winxp的时候, Load_Cycle_Count也同样比较多.
我觉得这个应该是个平衡的问题: 用hdparm -B num /dev/sda 把硬盘的高级电源管理参数设置的高一些, 降低磁头复位的频率, 会使硬盘温度比较高; 设置的低一些, 硬盘省电, 温度低, 磁头复位频道高一些. 而且硬盘现在比较便宜, 坏了换一个好了, 不用太过担心. 如果实在是比较关心, 可以设置的高一些, 最高254, 255则会关闭高级电源管理功能.
# hpparm -B 250 /dev/sda
2. 电池充电设置
上次已经安装了tp_smapi模块, 这个模块主要是电池相关功能的设置
# echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
# echo 70 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
# cat /sys/devices/platform/smapi/BAT0/*_charge_thresh
可以把头两行加入/etc/rc.d/rc.local中, 开机就设置一下.
tp_smapi说明, 因为锂电池的电量在非常高和非常低的时候, 电量流失的非常快
电池的其他功能设置, 请看tp_smapi的README
3. LCD字体的设置
我这里再设置启用圆整字体边角, 效果已经很好了
4. Fn快捷键, 休眠, 待机
Thinkpad的快捷键功能, 也是thinkpad吸引人注意力的一个原因.
kernel中已经内置了对thinkpad_acpi的支持, 在编译内核的时候启用.
2.6.23.1中内置的thinkpad_acpi 0.16版本, 到thinkpad_acpi的主页(http://sourceforge.net/project/showfiles.php?group_id=117042)去下载一下最新版的0.18 patch for 2.6.23.1
强烈建议先去看一下/usr/src/linux/Documentation/thinkpad-acpi.txt, 这个文档对thinkpad的快捷键等功能说的很清楚
1)先打patch: patch -p0 < patchfile
2)重新编译和使用新的内核
3)在/etc/rc.modules.local加入一行
/sbin/modprobe thinkpad_acpi brightness_enable=1,brightness_mode=3
这里是启用设置LCD亮度控制功能, 亮度模式为EC和CMOS
4) 在启动的时候, 内核加参数(lilo.conf或者menu.lst):
acpi_sleep=s3_bios,s3_mode resume=/dev/sda6, 而且不能用framebuffer(vga=xxx), 否则休眠后屏幕不能唤醒
5) 在BIOS里面, 把屏幕亮度设置, 从Normal(用电池的时候降低屏幕亮度)改为High, 看文档说明是这个设置导致内核禁用了修改屏幕亮度功能(/proc/acpi/ibm目录下面没有brightness文件)
6) 在/etc/rc.d/rc.local加入两行, 设置acpid监控的hotkey mask
#cat /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask >/sys/devices/platform/thinkpad_acpi/hotkey_mask
#cat /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask > /proc/acpi/ibm/hotkey
7) 重启, 使用新的内核, acpid这个daemon会监控快捷键, 如果监控到有hotkey发生, 会根据/etc/acpi/events/default这个文件的设置.调用/etc/acpi/acpi_handler.sh这个脚本, 然后这个脚本调用相关action来处理. 可以自己监控一下
# tail -f /var/log/acpid
点击热键, 日志记录会出现相关的热键事件
注:
我是自己编写和修改了几个脚本, 来实现几个热键功能
1.我这几个文件只是简单实现了Fn+F4, Fn+F12, 休眠, 待机, Fn+Home, Fn+End等几个热键, 如果想要实现其他热键, 可以在此基础上修改.
2. 如果打开framebuffer, 休眠后屏幕无显示, 其他正常, 可以远程登录重启
3. 在标准字符界面, 没有任何问题
4. 在X窗口, 待机和休眠后无法唤醒, 我测试了几次,发现可以插拔鼠标唤醒, 呵呵
5. 在X窗口, 快捷键调节亮度功能无法使用, 我查了一下文档, 发现是xbacklight实现功能并不是直接读写/proc下面的文件, 而是另外一种机制(直接控制硬件?), 所以在X窗口, 只能用xbacklight来调节亮度
6. 因为脚本中有一些操作需要root权限, 所以是用sudo, 确信你的普通用户有sudo权限(/etc/sudoers)
7. 看thinkpad-acpi.txt, 作者说acpi现在正在进行比较大的修改, 接口还没有稳定下来, 主要有两个接口,/proc/acpi/ibm和/sys/devices/platform/thinkpad_acpi.
thinkpad在, Windows下面, 如果按了快捷键, 屏幕会有显示, 比如音量, 亮度等,
Linux下面也有相关软件实现同样的功能.
需要的模块:
1) tpb, xosd (http://www.slackware.com/~alien/slackbuilds)
2) radeontool (http://fdd.com/software/radeon/)
3) tuxonice的hibernate脚本(http://www.tuxonice.net/)
4) xset, xbacklight, 默认已经安装了
1.安装tpb, xosd
# installpkg tpb*.tgz xosd*.tgz
2. 安装radeontool
# make; mv radeontool /usr/local/sbin/radeontool
3. 安装hibernate脚本
# ./install.sh
4. 修改/etc/tpbrc, 内容如下:
CALLBACK /etc/acpi/tpb/tpb.sh
MIXER ON
XEVENTS OFF
5. 在/etc/rc.d/rc.local加入一行
/usr/bin/tpb -d
6. 下载这个脚本(http://www.thinkwiki.org/wiki/ACPI_a...imized_for_R51)
保存到/etc/acpi/acpi_handler.sh, 并修改其中对应的部分
如: USER, OSD_DISABLE_FILE等等, 改为你的环境的对应参数
7. 这个脚本没有控制屏幕亮度功能, 我改了一下, 加入了此功能
8. mkdir /etc/acpi/tpb; ln -s /etc/acpi/acpi_handler.sh /etc/acpi/tpb/tpb.sh
ok, 现在这个脚本比较完美了