veket官方网站论坛

perryfa 发表于 2011-3-3 00:42

关于休眠功能的探索(附acpitool)

本帖最后由 perryfa 于 2011-3-3 13:50 编辑

1. veket自带的suspend功能
veket系统是有suspend功能的,在我的toshiba手提机上,合上盖子就可以实现休眠。打开盖子能恢复桌面的全部程序窗口。
但是,有个问题让这个休眠不太完美,我是用“简单网络设置”(sns)设置无线网络的,每次合上盖子休眠以后,再次打开盖子,无线网络就断掉了,需要重新设置,很不方便。
昨天琢磨了一下,解决了这个问题。
用文本编辑器打开这个脚本:
/etc/acpi/actions/suspend.sh
在脚本的最后加上几行:# 检测一下目前的默认网络设置模式
CURNET="`cat /usr/local/bin/defaultconnect | tail -n 1 | tr -s " " | cut -f 2 -d " "`"
# 假如使用sns, 在唤醒休眠后运行两次 rc.network
if [ $CURNET == "sns" ]; then
/usr/local/simple_network_setup/rc.network &&
/usr/local/simple_network_setup/rc.network
fi这样每次从suspend恢复时,就能恢复网络连接。(需要稍微几秒,等网络脚本运行完毕)
注意,上面的rc.network脚本被运行了两次,因为suspend以后,虽然网络断掉了,但DHCP进程有可能还保留在系统里,第一次运行脚本就会失败,但同时也会杀掉旧进程,这样第二次运行就能连上网络了。

如果不想合上盖子,或者像台式机本来也没盖子,想实现休眠也是可以的。直接到这个目录:
/etc/acpi/actions/
把文件suspend.sh拉到桌面,每次需要休眠就双击这个脚本,就可以实现休眠。而需要唤醒时,按一下电源开关就恢复了。

2. 强大好用的电源管理工具 -acpitool
我在网上看到过一些帖子,说某些机器使用puppy时睡眠功能不行,于是就有人找来这个小工具,发现用这个工具各种机器基本都能实现suspend功能。我试了一下,果然行,至少休眠功能很好用。
(在lucky8k-veket3.5中测试)
附件下载:
网盘下载:http://u.115.com/file/f931052364

这是个命令行的电源管理工具,没菜单的。因机器不同,这个工具能实现的功能也不一样。
我的机器是toshiba,而toshiba安装linux系统最大的毛病就是风扇管理,一部分toshiba机器的电源管理部分对linux总是不太支持,(常常在toshiba的官网看到用户大骂),所以,很无奈。用这个工具,我的机器也只能实现部分功能,例如休眠,又例如看电池状态、看cpu状态等等,但风扇管理不行,显示屏亮度调整也不行(还好用功能键可以调)。
这个工具的指令就一条:
acpitool
在指令后面跟不同的选项可以实现不同的功能。可以在终端打"acpitool -h"看全部选项。
我简单翻译了一些常用的指令供同学们选用:

acpitool -a
AC adapter information, 看交流电源信息

acpitool -A
show supported Asus ACPI extensions (LCD brightness level, video out routing DSTD/acpi4asus info)
看本机所支持的华硕电源管理扩展(LCD亮度等级,视频输出路径 DSTD/acpi4asus 信息)

acpitool -b
battery status, available batteries only
看电池状态

acpitool -B
battery status, all info on all battery entries
看电池状态和信息(比上面一条更详细的信息)

acpitool -c
CPU information (type, speed, cache size, frequency scaling, c-states, . . .)
看CPU信息(类型,速度,缓存大小,等等)

acpitool -e
show just about everything
看本工具支持的全部信息

acpitool -f
show fan status
显示风扇状态

acpitool -F x
force fan on (x=1) or switch back to auto mode (x=0). (Toshiba only)
强制风扇开启(x=1),或者切换回自动状态(x=0)。(本选项只对toshiba机器有效。遗憾的是,我的toshiba机器恰恰无法运行风扇指令)

acpitool -h
show this help screen
看指令的帮助信息

acpitool -j
eject ultrabay device (Thinkpad only)
弹出Ultrabay设备(只对Thinkpad有效)

acpitool -l x
set LCD brightness level to x, where x is 0..7 (Toshiba and Thinkpad only)
设置LCD亮度等级, x=0~7 (只对Toshiba和Thinkpad有效。我的toshiba无效)

acpitool -m x
switch the mail led on (x=1) or off (x=0) (Asus only)
切换邮件开关,开(x=1),关(x=0)(只对华硕有效)

acpitool -n x
switch the wireless led on (x=1) or off (x=0). (Asus only)
切换无线开关,开(x=1),关(x=0)(只对华硕有效)

acpitool -o x
set LCD on (x=1) or off (x=0). (Asus only)
设置LCD,开(x=1),关(x=0)(只对华硕有效)

acpitool -s
suspend to memory (sleep state S3), if supported
睡眠等级S3(除了内存外的部件都停止工作)。这个功能在我的机器上运行很好。运行一下机器就进入睡眠状态。

acpitool -S
suspend to disk (sleep state S4), if supported
睡眠等级S4(内存信息写入硬盘,所有部件停止工作。比S3睡得更深沉一些,仅次于关闭计算机)。这个功能在我的机器上时灵时不灵.

acpitool -t
thermal information, including trip_points
显示温度阈值,包括风扇启动的阈值

acpitool -T
show supported Toshiba ACPI extensions (LCD brightness level, video out routing, fan status)
显示支持的toshiba电源管理扩展(LCD亮度等级,视频输出路径, 风扇状态等)。我的toshiba不支持任何扩展。

acpitool -V
show application version number and release date
显示这个工具的版本号和发行日期

acpitool -w
show wakeup capable devices
显示能唤醒的设备

acpitool -W x
enable/disable wakeup capable device x. The x can be seen when invoking -w first.
从上条指令里查看可唤醒设备的号码,在此处即为x的值(我很菜,对硬件一窍不通,所以虽然这两条指令都能用,但不知道是干嘛的)

acpitool -z x
set Asus LCD brightness level to x, where x is 0..15 (Asus only).
设置华硕LCD亮度等级,x=0~15 (只对华硕有效)

最后有一个选项 “-v”,这个选项是不能单独使用的,用来和其他查看选项结合使用,给出更为详细的信息。

使用这个工具实现睡眠功能是非常简单的。
在终端打:
acpitool -s
就行了。
如果觉得打指令不方便,可以自己做个脚本,像这样:#!/bin/sh
acpitool -s
# 检测一下目前的默认网络设置模式
CURNET="`cat /usr/local/bin/defaultconnect | tail -n 1 | tr -s " " | cut -f 2 -d " "`"
# 假如使用sns, 在唤醒休眠后运行两次 rc.network
if [ $CURNET == "sns" ]; then
/usr/local/simple_network_setup/rc.network &&
/usr/local/simple_network_setup/rc.network
fi把上面的内容拷贝到一个文本文件,起个名字保存到你自己的某个目录(例如我起名为“mysuspend”),在文件管理器点开该文本文件的属性,在“权限”界面把“允许此文件作为程序来执行”勾上。然后拉到桌面,需要时双击一下,机器就休眠了。

veketdefender 发表于 2011-3-3 00:53

写的不错!很实用!

veketdefender 发表于 2011-3-3 00:54

#!/bin/sh
我想请问这句是什么意思?

perryfa 发表于 2011-3-3 00:56

回复 veketdefender 的帖子

文件头。文件类型判断就是这个头在起作用,否则,和文本文件没区别。

veketdefender 发表于 2011-3-3 01:01

回复 perryfa 的帖子

对了。我记得论坛里有一个关于图形化脚本的工具,找了挺久没找到,你记得不。不记得我就再找找。
页: [1] 2 3 4 5 6
查看完整版本: 关于休眠功能的探索(附acpitool)