私はしなければならない特定のイベントを無効にするデスクトップが停止した直後に目が覚めるのを防ぐために試行錯誤しました(うまくいったので問題ありませんでした)。しかし、知りたいのですが...たとえば、私のラップトップには次のような長いリストがあります/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
次のように進んでください。
- ACPIテーブルを抽出します(root):
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
- デコンパイル:
iasl -d dsdt.dat
、出力ファイルを取得します。dsdt.dsl
- 定義されたデバイスを見つけて
/proc/acpi/wakeup
比較します。dsdt.dsl
引用する
答え4
Linuxカーネルacpi 名前空間のドキュメント「Scope(RP03):PCI0 Power Scope」など、これらの略語が何であるかについての感情的なヒントを提供します。カーネルソースコード/proc ファイルに と表示されますが、
dev->pnp.bus_id
役に立ちません。
958ページACPI仕様5.0楽しいですが、名前にも役立ちません。