veket官方网站论坛

veket

 找回密码
 要注册
搜索
查看: 9727|回复: 28

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

[复制链接]
发表于 2011-3-3 00:42 | 显示全部楼层 |阅读模式
本帖最后由 perryfa 于 2011-3-3 13:50 编辑

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

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

2. 强大好用的电源管理工具 -acpitool
我在网上看到过一些帖子,说某些机器使用puppy时睡眠功能不行,于是就有人找来这个小工具,发现用这个工具各种机器基本都能实现suspend功能。我试了一下,果然行,至少休眠功能很好用。
(在lucky8k-veket3.5中测试)
附件下载: acpitool-0.5.pet (366.82 KB, 下载次数: 25)
网盘下载: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
就行了。
如果觉得打指令不方便,可以自己做个脚本,像这样:
  1. #!/bin/sh
  2. acpitool -s
  3. # 检测一下目前的默认网络设置模式
  4. CURNET="`cat /usr/local/bin/defaultconnect | tail -n 1 | tr -s " " | cut -f 2 -d " "`"
  5. # 假如使用sns, 在唤醒休眠后运行两次 rc.network
  6. if [ $CURNET == "sns" ]; then
  7. /usr/local/simple_network_setup/rc.network &&
  8. /usr/local/simple_network_setup/rc.network
  9. fi
复制代码
把上面的内容拷贝到一个文本文件,起个名字保存到你自己的某个目录(例如我起名为“mysuspend”),在文件管理器点开该文本文件的属性,在“权限”界面把“允许此文件作为程序来执行”勾上。然后拉到桌面,需要时双击一下,机器就休眠了。
发表于 2011-3-3 00:53 | 显示全部楼层
写的不错!很实用!
发表于 2011-3-3 00:54 | 显示全部楼层
#!/bin/sh
我想请问这句是什么意思?
 楼主| 发表于 2011-3-3 00:56 | 显示全部楼层
回复 veketdefender 的帖子

文件头。文件类型判断就是这个头在起作用,否则,和文本文件没区别。
发表于 2011-3-3 01:01 | 显示全部楼层
回复 perryfa 的帖子

对了。我记得论坛里有一个关于图形化脚本的工具,找了挺久没找到,你记得不。不记得我就再找找。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-4-28 02:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表