デスクトップマシンでサスペンドした後、すぐにウェイクアップしないように 一部のイベントを無効にする しなければなりません。試行錯誤でそれを実行しました(問題なく動作するため)。しかし、疑問に思います。たとえば、私のラップトップでは、/proc/acpi/wakeup
に長いリストがあります。
[...]
RP03 S4 *disabled
PXSX S4 *disabled
RP04 S4 *disabled pci:0000:00:1c.3
PXSX S4 *enabled pci:0000:03:00.0
RP06 S4 *disabled
[...]
調べてみましたが、1列目の4文字コードの意味の一覧が説明されているところが見つかりません。後にデバイス名が付いたイベントがそのデバイスによってリンク/生成されたと想像しますが、残りのほとんどの部分で途方に暮れています...
たとえば、イベントRP06
が何であるかをどのようにして知ることができますか?リストはどこにありますか?または、そのコードはベンダー固有ですか?
コードは、BIOSのDSDT(Differentiated System Description Table)から取得されます。この「表」では、メインボードに統合されたデバイス、それらの依存関係、および電源管理機能について説明します。
DSDT内のデバイスはツリーに配置され、各パスコンポーネントは4文字に制限されています。 /proc/acpi/wakeup
のコードは、ベンダーがデバイスに使用したデバイスの最後のパスコンポーネント(別名)です。
ベンダーは任意のデバイスに好きな名前を付けることができるため、それらは本質的にベンダー固有です。しかし、 ACPI仕様 で例として使用されているため、または明らかな略語であるため、多くのベンダー間で共通する名前がいくつかあります。
コンピューターのACPIテーブルを抽出して逆コンパイルできます。
IntelのASLコンパイラを使用すると、システムのDSDTテーブルをソースコードに変換できます。
acpica-tools
をインストールする必要があります:
Sudo apt-get install acpica-tools
Sudo pacman -S --needed acpica
手順は次のとおりです。
# cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
iasl -d dsdt.dat
、出力ファイルdsdt.dsl
を取得します/proc/acpi/wakeup
で定義されたデバイスを検索し、dsdt.dsl
と比較しますLinuxカーネル acpi名前空間に関するドキュメント は、これらの略語がどのようなものであるかについての興味深いヒントを提供します。たとえば、「Scope(RP03):PCI0 power scope」、および kernel source for/procファイルは、それがdev->pnp.bus_id
、しかしそれは役に立ちません。
958ページ acpi spec 5. は非常に興味深いものですが、これらの名前も役に立ちません。