1.在/etc/X11/xorg.conf中加入DPMS
2. rc.conf中启用相关的模块
注意别少了最后一个thinkpad_acpi。
2.5 实现自动降频:(第二步添加
3. 安装acpid,acpi。
4. 编辑/etc/modprobe.conf,添加
来指定加载模块时的参数,hotkey=enable,0xffff指明使用尽可能多的快捷键,experimental=1打开一些在测试中的功能,如 控制cpu风扇等,启用hotkey功能后,Fn+F4组合键将不产生sleep的acpi的事件,而是ibm/hotkey事件。acpid这个东西干 什么呢?ThinkWiki介绍说:
Basically, acpid just executes scripts residing in /etc/acpi/actions. Which script to launch at which event is configured in several files in /etc/acpi/events. All actions are documented in /var/log/acpid.
5.编辑/etc/acpi/文件夹 ,让文件结构如下所示(如果没有则自己创建):
| - apci
| | - actions
| | | - instWiFi.sh
| | | - lcd_switch.sh
| | | - sleep.sh
| | - events
| | | - anything
| | - handler.sh
6.将acpi对ibm/hotkey事件的相应加入handler.sh:
7.编写actions文件夹下相对应的脚本如下:
lcd_switch.sh:
instWiFi.sh
sleep.sh
可以看出,我另添加了三个脚本:
--lcd_switch.sh提供了关闭屏幕的功能(需要radeontool的支持);
--sleep.sh提供了休眠的功能,修改后的休眠脚本(需要radeontool的支持);
--instWiFi.sh提供了无线连接和断开的功能(需要首先配置好无线:安装wireless_tools和ipw2200-fw,并且编译内核时提供了无线支持)。
记得chmod +x /etc/acpi/actions/*
8.安装radeontool, [url]http://www.thinkwiki.org/wiki/Radeontool[/url]
PKGBUILD:
9.$/etc/rc.d/acpid restart,然后就可以看看各个热键是否起作用了。
10.IBM ThinkPad 合上屏幕休眠的设置:
---------------------------------------------
IBM休眠的快捷方式有两个:
1). 按Fn+F4
2). 合上机盖
分别在handler.sh上对应:
1). ibm/hotkey HKEY 00000080 00001004
2). ibm/hotkey HKEY 00000080 00005001 #ThinkPad对笔记本加上的热键,只有thinkpad会产生
button/lid LID 00000080 00000007 #正常合上机盖所产生的信号,适合于所有的笔记本
于是,对于情况2),我们在handler.sh中加入相应的处理方法:
对于情况1),就是前面的步骤
11.原理:
--------------------------------------
我们来看看acpid的工作原理:
1). 首先,我们按下某热键,此处我们举例Fn+F4 ;
2). acpid监听并截获这个按键组合,我们可以用acpi_listen命令来手动查看不同按键组合产生不同的信号:
$ acpi_listen
ibm/hotkey HKEY 00000080 00001004 #这是我的机器上Fn+F4产生的中断信号
3). acpid在/ect/acpi/events/下寻找对应的处理方案,我的该文件夹下面只有一个文件:
$ cat anything
event=.*
action=/etc/acpi/handler.sh %e
NOTE: 在这里,我偷了一个懒。我将所有的信号(前面acpi_listen所监听到的)一股脑儿抛给了handler.sh,然后在handler.sh里进行分析处理。其实,你可以创建自己的处理方案,比如,
$ vim /etc/acpid/events/sleep
event=ibm/hotkey HKEY 00000080 00001004 #ThinkPad Fn+F4产生的中断信号
action=/etc/acpi/actions/sleep.sh #遇到这个中断信号则执行该脚本
4). handler.sh接收到处理信号后,首先进行分析:
set $*
case "$1" in
ibm/hotkey)
case "$2" in
HKEY)
case "$4" in
00001004) #echo "f4" >/dev/tty5,终于分析完Fn+F4信号了
/etc/acpi/actions/sleep.sh #激活相应事件处理程序
;;
...
NOTE: 其实整个事件过程可以在上面第三步用NOTE中的方法代替。但是这样做的好处是将所有的处理方法都放到一起,便于编辑(就是喜欢ArchLinux的这种风格,在系统启动脚本/etc/rc.*上尤其明显)。
5). /etc/acpi/actions/sleep.sh被执行。
Links:
-------------------------------------------
1. 笔记本上使用ArchLinux:
[url]http://www.archlinux.org.cn/main/?q=node/76#sec-4[/url]
2. How to configure acpid:
[url]http://www.thinkwiki.org/wiki/How_to_configure_acpid#Action_Script[/url]
3. Radeontool:
[url]http://www.thinkwiki.org/wiki/Randontool[/url]
4. Debian GNU/Linux on IBM T41P
[url]http://pthichat.net/index.php/2004/11/01/22-debian-gnulinux-on-ibm-t41p[/url]
5. Debian + IBM-R40(迅驰)
[url]http://www.linuxsir.org/bbs/showthread.php?t=238459[/url]
--------------
附上完整的/etc/acpi/handler.sh
----完----
peterpannju的原文请查看
[url]http://peterpannju.blogbus.com/logs/7173241.html[/url]
# **********************************************************************
|
2. rc.conf中启用相关的模块
ac button battery fan acpi_cpufreq cpufreq_ondemand thinkpad_acpi
|
2.5 实现自动降频:(第二步添加
acpi_cpufreq cpufreq_ondemand两个模块后)把一下加入/etc/rc.local
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
3. 安装acpid,acpi。
$sudo pacman -S acpid acpi
|
4. 编辑/etc/modprobe.conf,添加
options ibm_acpi hotkey=enable,0xffff experimental=1
|
Basically, acpid just executes scripts residing in /etc/acpi/actions. Which script to launch at which event is configured in several files in /etc/acpi/events. All actions are documented in /var/log/acpid.
5.编辑/etc/acpi/文件夹 ,让文件结构如下所示(如果没有则自己创建):
| - apci
| | - actions
| | | - instWiFi.sh
| | | - lcd_switch.sh
| | | - sleep.sh
| | - events
| | | - anything
| | - handler.sh
6.将acpi对ibm/hotkey事件的相应加入handler.sh:
ibm/hotkey)
|
7.编写actions文件夹下相对应的脚本如下:
lcd_switch.sh:
#!/bin/sh
|
instWiFi.sh
#!/bin/sh
#echo Feel Freedom,using WiFi!
|
sleep.sh
#!/bin/sh
|
可以看出,我另添加了三个脚本:
--lcd_switch.sh提供了关闭屏幕的功能(需要radeontool的支持);
--sleep.sh提供了休眠的功能,修改后的休眠脚本(需要radeontool的支持);
--instWiFi.sh提供了无线连接和断开的功能(需要首先配置好无线:安装wireless_tools和ipw2200-fw,并且编译内核时提供了无线支持)。
记得chmod +x /etc/acpi/actions/*
8.安装radeontool, [url]http://www.thinkwiki.org/wiki/Radeontool[/url]
PKGBUILD:
pkgname=radeontool
|
9.$/etc/rc.d/acpid restart,然后就可以看看各个热键是否起作用了。
10.IBM ThinkPad 合上屏幕休眠的设置:
---------------------------------------------
IBM休眠的快捷方式有两个:
1). 按Fn+F4
2). 合上机盖
分别在handler.sh上对应:
1). ibm/hotkey HKEY 00000080 00001004
2). ibm/hotkey HKEY 00000080 00005001 #ThinkPad对笔记本加上的热键,只有thinkpad会产生
button/lid LID 00000080 00000007 #正常合上机盖所产生的信号,适合于所有的笔记本
于是,对于情况2),我们在handler.sh中加入相应的处理方法:
...
|
对于情况1),就是前面的步骤
11.原理:
--------------------------------------
我们来看看acpid的工作原理:
1). 首先,我们按下某热键,此处我们举例Fn+F4 ;
2). acpid监听并截获这个按键组合,我们可以用acpi_listen命令来手动查看不同按键组合产生不同的信号:
$ acpi_listen
ibm/hotkey HKEY 00000080 00001004 #这是我的机器上Fn+F4产生的中断信号
3). acpid在/ect/acpi/events/下寻找对应的处理方案,我的该文件夹下面只有一个文件:
$ cat anything
event=.*
action=/etc/acpi/handler.sh %e
NOTE: 在这里,我偷了一个懒。我将所有的信号(前面acpi_listen所监听到的)一股脑儿抛给了handler.sh,然后在handler.sh里进行分析处理。其实,你可以创建自己的处理方案,比如,
$ vim /etc/acpid/events/sleep
event=ibm/hotkey HKEY 00000080 00001004 #ThinkPad Fn+F4产生的中断信号
action=/etc/acpi/actions/sleep.sh #遇到这个中断信号则执行该脚本
4). handler.sh接收到处理信号后,首先进行分析:
set $*
case "$1" in
ibm/hotkey)
case "$2" in
HKEY)
case "$4" in
00001004) #echo "f4" >/dev/tty5,终于分析完Fn+F4信号了
/etc/acpi/actions/sleep.sh #激活相应事件处理程序
;;
...
NOTE: 其实整个事件过程可以在上面第三步用NOTE中的方法代替。但是这样做的好处是将所有的处理方法都放到一起,便于编辑(就是喜欢ArchLinux的这种风格,在系统启动脚本/etc/rc.*上尤其明显)。
5). /etc/acpi/actions/sleep.sh被执行。
Links:
-------------------------------------------
1. 笔记本上使用ArchLinux:
[url]http://www.archlinux.org.cn/main/?q=node/76#sec-4[/url]
2. How to configure acpid:
[url]http://www.thinkwiki.org/wiki/How_to_configure_acpid#Action_Script[/url]
3. Radeontool:
[url]http://www.thinkwiki.org/wiki/Randontool[/url]
4. Debian GNU/Linux on IBM T41P
[url]http://pthichat.net/index.php/2004/11/01/22-debian-gnulinux-on-ibm-t41p[/url]
5. Debian + IBM-R40(迅驰)
[url]http://www.linuxsir.org/bbs/showthread.php?t=238459[/url]
--------------
附上完整的/etc/acpi/handler.sh
#!/bin/sh
|
----完----
peterpannju的原文请查看
[url]http://peterpannju.blogbus.com/logs/7173241.html[/url]
转载于:https://blog.51cto.com/dreamland/85901