SDB:ACPI 挂起调试

跳转到:导航搜索


本文介绍 ACPI 挂起(磁盘和内存挂起)的“深度”调试。

ACPI 挂起调试

自 SUSE 9.3 以来,磁盘挂起应该在大多数机器上都能正常工作,而不会出现重大问题。 已知问题是 SATA 和 SCSI 硬盘以及专有的 X 驱动程序,尤其是 ATI fglrx。

自 10.2 以来,SATA 硬盘应该可以正常工作。

上述提示通常适用于磁盘挂起,尽管希望在磁盘挂起时不需要它们 :-)

内存挂起设置起来要困难一些。 虽然它在许多笔记本电脑(以及一些台式机)上都能工作,但通常无法开箱即用。 许多机器上存在的问题是,在恢复期间显卡无法正确重新初始化,这通常意味着笔记本电脑显示器的背光灯会一直关闭。 可以在 SDB:Suspend_to_RAM 文章中找到许多关于该如何操作的提示。 SDB:Suspend_to_RAM 是一个程序,它实现了已知的许多解决方法,以便在恢复后“让光亮回来”。 它打包在 suspend 包中。 可以在内核文档(“kernel-source”包)中的文件 /usr/src/linux/Documentation/power/video.txt 中找到其他文档。

对于内存挂起的首次尝试,(至少如果它无法开箱即用)最好从一个最小的系统开始,并逐步朝着一个完全正常工作的系统努力。 这里描述了该最小系统。

为了能够在 GRUB 提示符下舒适地编辑 vga=... 参数(内核仅识别第一个 vga 关键字),最好将此参数在 /boot/grub/menu.lst 中 showopts 关键字 之后,这样您就可以在每次启动时看到并编辑它。

相应的条目可能如下所示(示例)

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
    kernel (hd0,4)/vmlinuz root=/dev/hda7 selinux=0 splash=silent sysrq=yes resume=/dev/hda6 showopts vga=0x342 
    initrd (hd0,4)/initrd

要使用最小配置进行测试,请将 "init=/bin/bash" 添加到 grub 提示符处的启动选项。 内核现在将直接启动到 shell,而不会经过所有启动脚本。 现在我们可以尝试“手动”调用挂起

# mount /proc and /sys:
mount /proc
mount /sys
# for suspend to disk, activate swap here. Not necessary for suspend to RAM:
# swapon -a
# invoke suspend to RAM ("disk" for suspend to disk):
echo mem > /sys/power/state

机器现在应该挂起(通常 LED 会闪烁)。 唤醒它(取决于机器)使用电源按钮、关闭/打开盖子或按下 Fn 键(电源 LED 再次亮起)。 硬盘 LED 可能会短暂闪烁,但应该再次熄灭。 如果显示器处于活动状态并且可以看到以前的内容,则实验结束:它有效。 如果显示器保持黑暗,我们继续在这里。

首先检查“只有”显示器保持黑暗,还是机器完全死机。 盲目地输入

find /

如果硬盘 LED 现在正在闪烁,系统的其余部分似乎正在工作,只是显卡需要一些工作。 此 find 命令无法使用 init=/bin/bash 中断,您必须断电或按下复位按钮。

如果一切正常到这里,请继续阅读 SDB:Suspend_to_RAM 文章中给出的提示。 如果您成功了,请报告此情况,以便我们可以将您的机器添加到白名单中。