ACPI modules (Español)
De uefi.org:
- La especificación Advanced Configuration and Power Interface (ACPI) se desarrolló para establecer interfaces comunes en la industria que permiten una configuración robusta de los dispositivos de la placa base dirigida por un sistema operativo (SO) y la administración de energía tanto de los dispositivos como del sistema completo. ACPI es el elemento clave en la configuración dirigida por el sistema operativo y la administración de energía (OSPM).
Los módulos ACPI son módulos del kernel para diferentes partes de ACPI. Permiten funciones ACPI especiales o añaden información en /proc
o /sys
. Esta información puede ser analizada por acpid para eventos u otras aplicaciones de supervisión.
¿Qué módulos están disponibles?
Esta es una pequeña lista y un resumen de los módulos del kernel de ACPI:
- ac (estado del conector de alimentación)
- asus-laptop (útil en portátiles ASUS/medion)
- battery (estado de la batería)
- bay (estado de las bahías)
- button (eventos de botón de captura, como LID o POWER BUTTON)
- container (estado del contenedor)
- dock (estado de la estación de acoplamiento, docking station)
- fan (estado del los ventiladores)
- i2c_ec (driver EC SMBUs)
- thinkpad_acpi (útil en portátiles Lenovo Thinkpad)
- processor (estado de los procesadores)
- sbs (estado de la batería inteligente)
- thermal (estado de los sensores de temperatura)
- toshiba_acpi (útil en portátiles Toshiba)
- video (estado de los dispositivos de vídeo)
Se puede obtener una lista completa para su kernel en ejecución con la siguiente orden:
$ ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi
total 112 -rw-r--r-- 1 root root 2808 Aug 29 23:58 ac.ko.gz -rw-r--r-- 1 root root 3021 Aug 29 23:58 acpi_ipmi.ko.gz -rw-r--r-- 1 root root 3354 Aug 29 23:58 acpi_memhotplug.ko.gz -rw-r--r-- 1 root root 4628 Aug 29 23:58 acpi_pad.ko.gz drwxr-xr-x 2 root root 4096 Aug 29 23:59 apei -rw-r--r-- 1 root root 7120 Aug 29 23:58 battery.ko.gz -rw-r--r-- 1 root root 3700 Aug 29 23:58 button.ko.gz -rw-r--r-- 1 root root 2181 Aug 29 23:58 container.ko.gz -rw-r--r-- 1 root root 1525 Aug 29 23:58 custom_method.ko.gz -rw-r--r-- 1 root root 1909 Aug 29 23:58 ec_sys.ko.gz -rw-r--r-- 1 root root 2001 Aug 29 23:58 fan.ko.gz -rw-r--r-- 1 root root 1532 Aug 29 23:58 hed.ko.gz -rw-r--r-- 1 root root 3241 Aug 29 23:58 pci_slot.ko.gz -rw-r--r-- 1 root root 17742 Aug 29 23:58 processor.ko.gz -rw-r--r-- 1 root root 3073 Aug 29 23:58 sbshc.ko.gz -rw-r--r-- 1 root root 7098 Aug 29 23:58 sbs.ko.gz -rw-r--r-- 1 root root 6311 Aug 29 23:58 thermal.ko.gz -rw-r--r-- 1 root root 8891 Aug 29 23:58 video.ko.gz
Cómo seleccionar los adecuados
Debe ir probando los módulos que funcionan en su máquina utilizando modprobe módulo
, entonces compruebe si el módulo es compatible con su hardware utilizando dmesg
. Puede ser útil añadir una búsqueda de texto grep para restringir los resultados:
# dmesg | grep -i acpi
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x05] enabled) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1]) [ 5.066752] ACPI: acpi_idle yielding to intel_idle [ 5.438998] acpi device:04: registered as cooling_device4
Añada los que estén funcionando a los archivos de configuración en /etc/modules-load.d
. /etc/modules-load.d
se describe en Kernel modules#Automatic module loading with systemd.
Obteniendo información
Para obtener la información de la batería, simplemente instale el paquete acpi y ejecute acpi -i
.
El uso de /proc
para almacenar información ACPI ha sido desaconsejado y desaprobado desde Linux 2.6.24. Los mismos datos están ahora disponibles en /sys
, y las partes de interés pueden (deberían) suscribirse a los eventos ACPI desde el kernel a través de netlink. Por ejemplo, para la batería:
/sys/class/power_supply/BAT0/
Solución de problemas
Corregir DSDT
Si persisten los problemas con la administración de energía a pesar de haber cargado los módulos adecuados, un DSDT poco amistoso para Linux podría ser la causa. Véase el artículo de la wiki en DSDT.
Corregir ACPI para portátiles
A veces verá "ACPI: EC: input buffer is not empty, aborting transaction". Este es un problema con ACPI, más específicamente una incompatibilidad de la BIOS. Puede haber cuatro formas de resolver este problema:
- Si está disponible, actualice la BIOS.
- Utilice
acpi=off
como parámetro del kernel, sin embargo, esto matará todas las funciones ACPI, como la carga de la batería y el ahorro de energía. - En algunos casos, se informó que desactivando DPMS se solucionó el problema [1]. Sin embargo, el brillo de la pantalla ya no puede ser totalmente controlable:
$ xset dpms force off
- Construya un kernel a medida con los parches en bugs.launchpad.net.