ACPI覚醒4文字コードとはどういう意味ですか?

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
[...]

周囲を検索しましたが、最初の列にある4桁のコードの意味を説明するリストが見つかりませんでした。私はデバイス名の後に続くイベントがそのデバイスによって接続/生成されたと想像していますが、残りのほとんどは推測を引いた残りの部分で失われます。

RP06たとえば、イベントが何であるかをどうやって知ることができますか?どこかにリストがありますか?それとも、これらのコードはベンダーによって異なりますか?

答え1

これらのコードは、BIOSの差別化されたシステム記述テーブル(DSDT)から来ます。この「表」では、マザーボードの統合デバイス、対応する依存関係、および電源管理機能について説明します。

DSDT のデバイスは、ルート コンポーネントごとに 4 文字に制限されるツリーに整列されます。ここに含まれるコードは、ベンダー/proc/acpi/wakeupがデバイスに使用したデバイスの最後のパスコンポーネント(名前とも呼ばれます)です。

仕入先は必要に応じてデバイス名を指定できるため、基本的に仕入先ごとに異なります。しかし、多くのベンダーの間で一般的に使用される名前があるか、例として使用されるため、いくつかの名前があります。ACPI仕様または明らかな略語であるので:

  • PS2K: PS/2キーボード
  • PS2M: PS/2マウス
  • PWRBまたはPBTN:電源ボタン
  • SLPB:睡眠ボタン
  • LID:ラップトップカバー
  • RP0xまたはEXPx:PCIEスロット#x(PCI Expressルートポート#xとも呼ばれます)
  • EHCxまたはUSBx:USB 2.0(EHCI)チップ
  • XHC:USB 3.0(XHCI)チップ
  • PEGx:グラフィックスロット#x用PCI Express
  • GLANまたはIGBE:ギガビットイーサネット

答え2

PCIデバイスの確実なソリューション:

# cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
GP12      S4    *enabled   pci:0000:00:07.1
GP13      S4    *enabled   pci:0000:00:08.1 
XHC0      S4    *enabled   pci:0000:08:00.3
GPP0      S4    *enabled   pci:0000:00:01.1
GPP8      S4    *enabled   pci:0000:00:03.1
GPP1      S4    *enabled   pci:0000:00:01.2
PTXH      S4    *enabled   pci:0000:02:00.0
PT20      S4    *enabled   pci:0000:03:00.0
...

バス番号で検索:

# lspci | grep 08:00.3
08:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
# lspci | grep 02:00.0
02:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 43ee

答え3

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

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

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

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

次のように進んでください。

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

引用する

答え4

Linuxカーネルacpi 名前空間のドキュメント「Scope(RP03):PCI0 Power Scope」など、これらの略語が何であるかについての感情的なヒントを提供します。カーネルソースコード/proc ファイルに と表示されますが、 dev->pnp.bus_id役に立ちません。

958ページACPI仕様5.0楽しいですが、名前にも役立ちません。

関連情報