web-dev-qa-db-ja.com

ACPIの問題、HP Pavilion DV6-6008elで壊れたDSDTの修正に役立つ

HPラップトップのACPIサブシステムを修正するのに苦労しています( Pavilion DV6-6008el 、Ubuntu Natty 64ビット)。

acpi=offがgrubのカーネルパラメーターとして指定されている場合のみ起動できます。そうでない場合は、空白の画面とシステムがハングします。空白の画面と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)です。

問題、エラー、警告を修正するための助けをいただければ幸いです。どうもありがとう。

有用なリソース

7
Paolo

Fglrxドライバーをインストールし、aticonfigでacpiオプションを調整してみてください。ここに非公式のAMD wikiへのリンクがあります http://wiki.cchtml.com/index.php/Main_Page 。とても助かりました。これが役立つかどうか教えてください。ありがとう

1
Rocksinboxes

自分でやろうとしています。

Gentoo Wikiは非常に便利だと思います: ACPI/Fix common issues

Ubuntuに直接適用することはできませんが、ほとんど適用できます。

私がこれまで気づいた唯一の違いは、「iasl」をインストールするときです。

Gentoo:

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

Ubuntu:

Sudo apt-get install iasl
1
Ikem Krueger