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

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

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

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

我找到了关于如何调试 ACPI 的优秀文档;这种技术特别有用:如果反编译并重新编译 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

哎呀,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

这里是完整表格来源(36kb)。

任何帮助修复问题、错误和警告的帮助都将不胜感激。非常感谢。

有用的资源

答案1

您可以尝试安装 fglrx 驱动程序并使用 aticonfig 调整 acpi 选项。以下是非官方 AMD 维基的链接http://wiki.cchtml.com/index.php/Main_Page。它对我帮助很大。如果有帮助,请告诉我。谢谢

答案2

我自己试着这么做。

我发现 Gentoo Wiki 非常有用:ACPI/修复常见问题

它不能直接适用于 Ubuntu,但几乎可以。

到目前为止我注意到的唯一区别是当您安装“iasl”时。

Gentoo:

echo "sys-power/iasl ~x86" >> /etc/portage/package.keywords; emerge -av iasl

乌本图:

sudo apt-get install iasl

答案3

您可以执行 sudo modprobe fglrx,如果出现相同的错误,则可能需要重新启动。如果这有帮助,请告诉我。谢谢

相关内容