本页面需要更新翻译,内容可能已经与英文脱节。要贡献翻译,请访问简体中文翻译组。 附注: please use the first argument of the template to provide more detailed indications.
This article or section is out of date. Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Pm-utils (简体中文)#)
pm-utils 是一个全新的电源挂起和电源状态设置框架。它被设计来替代 通常HAL使用pm-utilsl来执行一系列的hacks来解决驱动所不能提供的电源挂起方面的操作。可以很方便的在特定目录当中配置自定义的挂钩,挂钩可以由管理员来建立或者是被包含在安装包当中,如果安装包需要监视电源的挂起和电源状态的改变。 可以和 Cpufrequtils 包联合使用,为笔记本和台式机提供完整的电源管理方案。 Contents[hide]安装pm-utilsAUR 包可以从官方软件仓库安装: # pacman -S pm-utils 基本配置挂起 / 休眠到内存理想情况下,运行 有时 pm-suspend 会挂住,无法正常完成。原因可能是 "不正常" 的模块。如果知道是哪个模块导致问题,可以在 SUSPEND_MODULES="uhci_hd button ehci_hd" 在挂起和唤醒电脑时,程序会对它们进行特别处理。 要在合上笔记本盖等电源事件发生时自动执行 pm-suspend,请参考 Acpid。 待机 / 休眠到磁盘要使用休眠功能,需要以root的身份编辑 # (0) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro initrd /initramfs-linux.img 当计算机进入休眠后,计算机会把内存中的所有信息保存到交换分区(swap partition)... 那么要求你的交换分区有足够的空间来保存RAM信息。 Raid swap : # (0) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz-linux root=/dev/md2 resume=/dev/md0 ro md=0,/dev/sda2,/dev/sdb2 md=2,/dev/sda5,/dev/sdb5 vga=773 initrd /initramfs-linux.img 如果你想要使用UUID来代替磁盘编号(UUID使用blkid命令找出,需要超级用户权限): # (0) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz-linux cryptdevice=/dev/sda2:main root=/dev/mapper/main-root resume=/dev/disk/by-uuid/1d893194-b151-43cd-a89e-6f89bd8b9f99 ro initrd /initramfs-linux.img 当你的机器休眠的时候,数据会从内存转向swap分区,所以最好swap空间至少要等于内存的。 对于GRUB2,需要修改 linux /boot/vmlinuz-linux root=/dev/disk/by-uuid/818dc030-8108-4428-8859-b73a58d0b0f3 ro quiet resume=/dev/sda2 关于永久性的讨论,请移步(英文) 论坛. 即使你的swap分区小于内存,也有很大的可能成功的休眠.根据 kernel documentation, 在非root下执行挂起/休眠因为必须在root权限下允许 # visudo 添加如下几行,记住把 username 替换成你自己的登录名: username ALL = (ALL) NOPASSWD: /usr/sbin/pm-hibernate username ALL = (ALL) NOPASSWD: /usr/sbin/pm-suspend 保存并推出 visudo 之后,你可以在普通用户下允许下面的脚本: $ sudo pm-hibernate 或者是 $ sudo pm-suspend 同时,把你的用户加入到 power 组,这样桌面小应用程序可以使用挂起操作。如果你不这样做,当你使用如 gnome shutdown 的程序来进行挂起/休眠操作的时候,计算机会发出烦人的声音和锁住屏幕。 # gpasswd -a username power 完成以上步骤后,你可以使用 gnome 的电源管理工具 (也许也能使用 kpowersave) 来进行自动的挂起/休眠,比如在合上笔记本上盖和电池电量不足的时候... 高级配置主要的配置文件是 你可以将下列简单的配置以"modules" 或 "config"的命名加入 SUSPEND_MODULES="button uhci_hcd" 配置文件中一些可以使用的变量SUSPEND_MODULES="button" # 列表当中的模块将在系统挂起时被卸载。 如何关闭监测(钩子,hook)程序如果你不喜欢某个监测程序或觉得某个监测程序无用甚至影响正常使用的话,你可以将他视为一个Bug来报告。当然,我们也可以很简单的去禁用它。你可以通过管理 touch /etc/pm/sleep.d/45pcmcia 你就可以建立一个 对于这个假的钩子程序不要设置可执行属性位。 建立你自己的钩子如果你想建立一些只属于你自己的挂起/休眠设置,你只需要简单的把你的钩子放到 以下展示的是一个非实用的钩子,它会把一些信息写入你的log文件: #!/bin/bash case $1 in hibernate) echo "Hey guy, we are going to suspend to disk!" ;; suspend) echo "Oh, this time we are doing a suspend to RAM. Cool!" ;; thaw) echo "oh, suspend to disk is over, we are resuming..." ;; resume) echo "hey, the suspend to RAM seems to be over..." ;; *) echo "somebody is calling me totally wrong." ;; esac 把以上内容写入 注意: 所有的钩子都以root用户执行。这意味着你需要在创建临时文件、检查PATH环境变量等时候多加小心,以避免安全问题。 工作原理这个概念看起来很简单:这些系统脚本 ( 注意: 也可以设置电脑在高功耗或低功耗模式下工作,利用这条命令 管理挂起的hooks文件在以下这些地方:
管理电源状态的hooks文件在以下这些地方:
在 已知问题如果你的休眠与挂起功能不能正常工作,那么一些有用的信息可能会输出到这个文件 Resume Hook系统有时会提示你需要将 HOOKS="base udev autodetect ide scsi sata resume filesystems " 这只是一个示范,你的HOOKS可以安装自己的需要编辑。
最后,你必须重新制作内核镜像,否则那些变更不会生效。 # mkinitcpio -p linux 注意: 如果你使用的是自己编译的内核,那么必须用 -p 参数重新制作镜像。 例如这样做: $ cat /etc/pm/sleep.d/50-hdparm_pm #!/bin/dash if [ -n "$1" ] && ([ "$1" = "resume" ] || [ "$1" = "thaw" ]); then hdparm -B 254 /dev/sda > /dev/null fi 重新启动鼠标某些笔记本电脑在挂起之后会不能使用。要纠正此问题的一种方法是通过HOOKS #!/bin/sh echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind echo -n "i8042" > /sys/bus/platform/drivers/i8042/bind 我点击的挂起但没有任何反应 / 日志文件在哪里当你从桌面部件使用挂起功能时没有正确执行,那么请尝试ROOT权限手动执行 在Openbox 菜单添加睡眠模式Openbox users can add the new scripts as additional shutdown options within the Openbox menu by adding the items to a new or existing sub-menu in <menu id="64" label="Shutdown"> <item label="Lock"> <action name="Execute"> <execute>xscreensaver-command -lock</execute> </action> </item> <item label="Logout"> <action name="Exit"/> </item> <item label="Reboot"> <action name="Execute"> <execute>sudo shutdown -r now</execute> </action> </item> <item label="Poweroff"> <action name="Execute"> <execute>sudo shutdown -h now </execute> </action> </item> <item label="Hibernate"> <action name="Execute"> <execute>sudo pm-hibernate</execute> </action> </item> <item label="Suspend"> <action name="Execute"> <execute>sudo pm-suspend</execute> </action> </item> </menu> 相关资源HAL Quirk Site - Common solutions and frequently asked questions CreditsThis wiki entry was originally sourced from the OpenSUSE Wiki (Licensed under GPL). A big thank you goes to the |
|
来自: 野崎君noZakiKu > 《Linux进阶(转)》