ACPI wakeup artinya kode 4 huruf?

19

Saya harus menonaktifkan beberapa acara untuk menghindari bangun segera setelah ditangguhkan di mesin desktop saya, dan saya membuatnya dengan coba-coba (berfungsi dengan baik, jadi itu tidak masalah). Tapi saya heran ... misalnya di laptop saya, saya punya daftar panjang di /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
[...]

Saya telah mencari-cari dan saya tidak dapat menemukan tempat di mana daftar dengan arti kode 4 huruf pada kolom pertama dijelaskan. Saya membayangkan bahwa peristiwa dengan nama perangkat setelah mereka ditautkan / dihasilkan oleh perangkat itu, tapi saya bingung dengan sebagian besar sisanya ... minus tebakan liar.

Bagaimana saya bisa tahu apa, misalnya, acara RP06itu? Apakah ada daftar? Atau apakah itu kode khusus vendor?

Rmano
sumber

Jawaban:

24

Kode-kode tersebut berasal dari DSDT (Tabel Deskripsi Sistem Diferensial) dari BIOS Anda. "Tabel" ini menjelaskan perangkat terintegrasi pada mainboard Anda, dependensinya, dan fungsi manajemen daya.

Perangkat di DSDT disusun dalam pohon dan masing-masing komponen jalur dibatasi hingga 4 karakter. Kode dalam /proc/acpi/wakeupadalah komponen jalur terakhir (alias nama) dari perangkat yang digunakan vendor untuk perangkat tersebut.

Mereka secara inheren khusus untuk vendor, karena vendor dapat menamai perangkat apa saja yang dia suka. Tetapi ada beberapa nama yang umum di antara banyak vendor, baik karena mereka digunakan sebagai contoh dalam spesifikasi ACPI atau karena mereka adalah singkatan yang jelas:

  • PS2K: keyboard PS / 2
  • PS2M: PS / 2 mouse
  • PWRB atau PBTN: Tombol daya
  • TUTUP: Penutup laptop
  • RP0x atau EXPx: Slot PCIE #x (alias PCI Express Root Port #x)
  • EHCx atau USBx: chip USB 2.0 (EHCI)
  • XHC: chip USB 3.0 (XHCI)
  • PEGx: PCI Express untuk slot Graphics #x
  • GLAN: Gigabit Ethernet
cg909
sumber
2
Jawaban bagus! Terima kasih. Bagaimana dengan IGBE dan HDEF? ;-)
Monah Tuk
3
Ya, mereka secara inheren khusus untuk vendor, jadi Anda tidak bisa terlalu yakin. Tapi HDEF kemungkinan besar berarti "Definisi tinggi", jadi itu mungkin perangkat audio terintegrasi dan IGBE bisa berarti "Intel Gigabit Ethernet" atau "Integrated Gigabit Ethernet", jadi itu harus menjadi pengendali LAN Ethernet.
cg909
Bagaimana dengan PXSX?
BuZZ-dEE
1
@ BuZZ-dEE PXSXtampaknya menjadi nama umum untuk perangkat yang menggunakan PCI Express. Setidaknya di komputer saya ada satu perangkat PXSX yang sesuai untuk setiap perangkat RP0x. Anda mungkin mendapatkan informasi lebih lanjut dengan membaca DSDT komputer Anda . Jika ada id PCI di sisi kanan dalam /proc/acpi/wakeupoutput, Anda dapat menghubungkannya dengan outputlspci
cg909
2

Dokumentasi kernel linux pada acpi namespace memberikan beberapa petunjuk yang menggiurkan tentang apa singkatan ini, misalnya "Ruang Lingkup (RP03): lingkup daya PCI0", dan sumber kernel untuk file / proc mengatakan itu adalah dev->pnp.bus_id, tetapi itu tidak Tolong.

The 958 halaman acpi spec 5.0 sangat menarik, tetapi tidak ada bantuan untuk nama-nama ini juga.

meuh
sumber
2

Anda bisa mengekstrak dan mendekompilasi tabel ACPI untuk komputer Anda.

Dengan menggunakan kompiler ASL Intel, Anda dapat mengubah tabel DSDT sistem Anda menjadi kode sumber.

Anda harus menginstal acpica-tools:

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

Inilah langkah-langkahnya:

  1. Ekstrak tabel ACPI (sebagai root): # cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  2. Dekompilasi:, iasl -d dsdt.datkita mendapatkan file outputdsdt.dsl
  3. Temukan perangkat yang didefinisikan /proc/acpi/wakeupdan bandingkan dengandsdt.dsl

Referensi

mja
sumber