¿Significado de código ACPI de 4 letras?

19

Tengo que deshabilitar algún evento para evitar una activación inmediata después de suspender en mi máquina de escritorio, y lo hice por prueba y error (funciona bien, por lo que no es un problema). Pero me pregunto ... por ejemplo, en mi computadora portátil tengo una larga lista en /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
[...]

He buscado y no puedo encontrar un lugar donde se explique una lista con el significado del código de 4 letras en la primera columna. Me imagino que los eventos con un nombre de dispositivo después de ellos están vinculados / generados por ese dispositivo, pero estoy perdido con la mayoría del resto ... menos conjeturas salvajes.

¿Cómo puedo saber qué es, por ejemplo, un evento RP06? ¿Hay alguna lista en alguna parte? ¿O son códigos específicos del proveedor?

Rmano
fuente

Respuestas:

24

Los códigos provienen de la DSDT (Tabla de descripción del sistema diferenciada) de su BIOS. Esta "tabla" describe los dispositivos integrados en su placa base, sus dependencias y funciones de administración de energía.

Los dispositivos en el DSDT están dispuestos en un árbol y cada componente de ruta está limitado a 4 caracteres. Los códigos en /proc/acpi/wakeupson los últimos componentes de ruta (también conocidos como los nombres) de los dispositivos que el proveedor usó para los dispositivos.

Son inherentemente específicos del proveedor, ya que el proveedor puede nombrar cualquier dispositivo como quiera. Pero hay algunos nombres que son comunes entre muchos proveedores, ya sea porque se usan como ejemplos en la especificación ACPI o porque son abreviaturas obvias:

  • PS2K: teclado PS / 2
  • PS2M: ratón PS / 2
  • PWRB o PBTN: botón de encendido
  • Tapa: tapa del portátil
  • RP0x o EXPx: ranura PCIE #x (también conocido como PCI Express Root Port #x)
  • EHCx o USBx: chip USB 2.0 (EHCI)
  • XHC: chip USB 3.0 (XHCI)
  • PEGx: PCI Express para ranura de gráficos #x
  • GLAN: Gigabit Ethernet
cg909
fuente
2
¡Gran respuesta! Gracias. ¿Qué pasa con IGBE y HDEF? ;-)
Monah Tuk
3
Bueno, son inherentemente específicos del proveedor, por lo que no puede estar tan seguro. Pero HDEF probablemente significa "Alta definición", por lo que es probable que sea el dispositivo de audio integrado e IGBE podría significar "Intel Gigabit Ethernet" o "Gigabit Ethernet integrado", por lo que debería ser el controlador LAN Ethernet.
cg909
¿Qué hay de PXSX?
BuZZ-dEE
1
@ BuZZ-dEE PXSXparece ser un nombre genérico para dispositivos que utilizan PCI Express. Al menos en mi computadora hay un dispositivo PXSX correspondiente a cada dispositivo RP0x. Puede obtener más información leyendo el DSDT de su computadora . Si hay una identificación PCI en el lado derecho en la /proc/acpi/wakeupsalida, puede correlacionarla con la salida delspci
cg909
2

La documentación del kernel de Linux en el espacio de nombres acpi da algunas sugerencias tentadoras sobre cuáles podrían ser estas abreviaturas, por ejemplo, "Alcance (RP03): el alcance de potencia PCI0", y la fuente del kernel para el archivo / proc dice que es un dev->pnp.bus_id, pero eso no ayuda.

La página 958 acpi spec 5.0 es muy interesante, pero tampoco ayuda con estos nombres.

meuh
fuente
2

Puede extraer y descompilar la tabla ACPI para su computadora.

Al usar el compilador ASL de Intel, puede convertir la tabla DSDT de su sistema en código fuente.

Necesitarás instalar acpica-tools:

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

Aquí están los pasos:

  1. Extraer tablas ACPI (como root): # cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  2. Descompilar: iasl -d dsdt.datobtenemos el archivo de salidadsdt.dsl
  3. Encuentre el dispositivo definido en /proc/acpi/wakeupy compárelo condsdt.dsl

Referencias

mja
fuente