文件 /var/log/messages 中记录了所有错误消息和警报。 如果您未能找到所需的信息,请使用文件 /etc/sysconfig/powersave/common 中的 DEBUG 增加 powersave 消息的详细程度。 请将变量的值增加到 7,或甚至增加到 15,然后重启动守护程序。 /var/log/messages 中更详细的错误消息应有助于您找到错误。 以下章节讲述省电模式和不同休眠模式中最常见的问题。
如果使用 ACPI 时遇到问题,请使用命令 dmesg|grep -i acpi 在 dmesg 的输出中搜索 ACPI 特定的消息。 可能需要更新 BIOS 来解决问题。 请转到便携式计算机制造商的主页,查找已更新的 BIOS 版本,然后安装它。 要求制造商遵循最新的 ACPI 规范。 如果在更新 BIOS 后错误仍然存在,则按以下步骤用已更新的 DSDT 替换 BIOS 中有问题的 DSDT 表。
从 http://acpi.sourceforge.net/dsdt/index.php 为您的系统下载 DSDT。 检查是否已解压缩并编译了此文件,如果文件扩展名是 .aml(ACPI 计算机语言),则表明已完成这些操作。 如果是这种情况,请继续执行第 3 步。
如果下载的表的文件扩展名是 .asl(ACPI 源语言),则必须使用 iasl(pmtools 包)对其进行编译。 为此,请输入命令 iasl -sa file.asl。
将文件 DSDT.aml 复制到任何位置(建议的位置为 /etc/DSDT.aml)。 编辑 /etc/sysconfig/kernel 并相应地调整指向 DSDT 文件的路径。 启动 mkinitrd(包 mkinitrd)。 一旦安装了内核并使用 mkinitrd 创建了 initrd,引导系统时就会集成并装载已修改的 DSDT。
请参考内核源代码 (kernel-source) 查看是否支持您的处理器。 您可能需要特殊内核模块或模块选项来激活 CPU 频率控制。 /usr/src/linux/Documentation/cpu-freq/* 中提供了此信息。
ACPI 系统由于 DSDT 实现 (BIOS) 有问题,可能在暂挂和待机中会遇到问题。如果出现这种情况,请更新 BIOS。
当系统尝试卸载有问题的模块时,会停止系统或不触发暂挂事件。如果您未卸载模块或停止阻止成功暂停的服务,也会发生相同的情况。 在这两种情况下,尝试确定阻止采用休眠方式的有问题的模块。 日志文件 /var/log/pm-suspend.log 包含关于所发生的情况以及哪里可能有错误的详细信息。修改 /usr/lib/pm-utils/defaults 中的 SUSPEND_MODULES 变量以在暂挂或待机之前卸载有问题的模块。
请参见 http://en.opensuse.org/Pm-utils 和 http://en.opensuse.org/S2ram 以获取有关如何修改暂挂和继续进程的更多详细信息。