ACPI 问题,帮助修复 HP Pavilion DV6-6008el 上损坏的 DSDT

Pao*_*olo 8 64-bit acpi laptop 11.04 hp

我很难修复 HP 笔记本电脑的 ACPI 子系统(Pavilion DV6-6008el,Ubuntu Natty 64 位)。

只有acpi=off在 grub 中指定为内核参数时才能启动,否则会出现黑屏和系统挂起。空白屏幕和 ACPI 禁用都是不可接受的。我在 Ask Ubuntu 上还有另一个类似的问题,其中包含其他详细信息。

我能够找到关于如何调试 ACPI 的好文档;这种技术特别有用:如果反编译并重新编译 DSDT 表,编译器会给出错误,嗯……表损坏了,这可能是引导失败的原因。下一步是修复代码,编译并使用固定的 DSDT 覆盖系统 DSDT(重新编译内核或将自定义 DSDT 构建到 initrd 中)。这是程序:

# apt-get install acpidump
# dump a system's ACPI table with DSTD signature to an ASCII file
sudo acpidump -t DSDT > dump

# convert ASCII acpidump output to raw binary table. Creates DSDT.dat, binary.
acpixtract dump

# apt-get install iasl
# disassemble AML to ASL, creates DSDT.dsl
# (AML: ACPI Machine Language, binary. ASL: ACPI Source Language, source)
iasl -d DSDT.dat

# recompile AML in assembler (-ta) or C (-tc) hex table. -vr disables remarks.
iasl -vr -tc DSDT.dsl
Run Code Online (Sandbox Code Playgroud)

糟糕,iasl intel 编译器抱怨:

DSDT.dsl    37:     External (\TNOT)
Error    4057 -                    ^ Name already exists in scope (\TNOT)

DSDT.dsl 11050:     Method (PAPR, 0, NotSerialized)
Warning  1088 -                ^ Not all control paths return a value (PAPR)

DSDT.dsl 12566:     Method (_CRS, 0, NotSerialized)
Warning  1088 -                ^ Not all control paths return a value (_CRS)

DSDT.dsl 12566:     Method (_CRS, 0, NotSerialized)
Warning  1081 -                ^ Reserved method must return a value
                                 (Buffer required for _CRS)

ASL Input:  DSDT.dsl - 12748 lines, 424447 bytes, 5910 keywords
Compilation complete. 1 Errors, 3 Warnings, 8 Remarks, 20 Optimizations
Run Code Online (Sandbox Code Playgroud)

这是完整的表源(36kb)。

非常感谢解决问题、错误和警告的任何帮助。非常感谢。

有用的资源

小智 1

您可以尝试安装 fglrx 驱动程序并使用 aticonfig 调整 acpi 选项。这里是非官方 AMD wiki http://wiki.cchtml.com/index.php/Main_Page的链接。它对我有很大帮助。请让我知道这可不可以帮你。谢谢


小智 -1

您可以执行 sudo modprobe fglrx 然后如果它给出相同的错误那么您可能必须重新启动。请让我知道这可不可以帮你。谢谢