web-dev-qa-db-ja.com

ACPIウェイクアップ4文字コードの意味?

デスクトップマシンでサスペンドした後、すぐにウェイクアップしないように 一部のイベントを無効にする しなければなりません。試行錯誤でそれを実行しました(問題なく動作するため)。しかし、疑問に思います。たとえば、私のラップトップでは、/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が何であるかをどのようにして知ることができますか?リストはどこにありますか?または、そのコードはベンダー固有ですか?

20
Rmano

コードは、BIOSのDSDT(Differentiated System Description Table)から取得されます。この「表」では、メインボードに統合されたデバイス、それらの依存関係、および電源管理機能について説明します。

DSDT内のデバイスはツリーに配置され、各パスコンポーネントは4文字に制限されています。 /proc/acpi/wakeupのコードは、ベンダーがデバイスに使用したデバイスの最後のパスコンポーネント(別名)です。

ベンダーは任意のデバイスに好きな名前を付けることができるため、それらは本質的にベンダー固有です。しかし、 ACPI仕様 で例として使用されているため、または明らかな略語であるため、多くのベンダー間で共通する名前がいくつかあります。

  • PS2K:PS/2キーボード
  • PS2M:PS/2マウス
  • PWRBまたはPBTN:電源ボタン
  • LID:ラップトップのふた
  • RP0xまたはEXPx:PCIEスロット#x(別名PCI Expressルートポート#x)
  • EHCxまたはUSBx:USB 2.0(EHCI)チップ
  • XHC:USB 3.0(XHCI)チップ
  • PEGx:グラフィックススロット#x用のPCI Express
  • GLAN:ギガビットイーサネット
25
cg909

コンピューターのACPIテーブルを抽出して逆コンパイルできます。

IntelのASLコンパイラを使用すると、システムのDSDTテーブルをソースコードに変換できます。

acpica-toolsをインストールする必要があります:

  • Ubuntu:Sudo apt-get install acpica-tools
  • Arch Linux:Sudo pacman -S --needed acpica

手順は次のとおりです。

  1. ACPIテーブルを抽出(ルートとして):# cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  2. 逆コンパイル:iasl -d dsdt.dat、出力ファイルdsdt.dslを取得します
  3. /proc/acpi/wakeupで定義されたデバイスを検索し、dsdt.dslと比較します

参考文献

2
mja

Linuxカーネル acpi名前空間に関するドキュメント は、これらの略語がどのようなものであるかについての興味深いヒントを提供します。たとえば、「Scope(RP03):PCI0 power scope」、および kernel source for/procファイルは、それがdev->pnp.bus_id、しかしそれは役に立ちません。

958ページ acpi spec 5. は非常に興味深いものですが、これらの名前も役に立ちません。

2
meuh