GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo hacer que los cambios en /proc/acpi/wakeup sean permanentes?

Tuve un problema con mi Ubuntu 12.04 al activarse inmediatamente después de suspenderse. Resolví el problema cambiando la configuración en /proc/acpi/wakeup, como se sugiere en esta pregunta:¿Cómo evito que la activación inmediata se suspenda y/o hiberne?.

Después de cambiar la configuración, el sistema se suspende sin problemas y permanece suspendido, pero después de que lo vuelvo a activar, la configuración en /proc/acpi/wakeup es diferente de lo que configuré.

Antes de ir a suspender:

cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
SMB0      S4    *disabled  pci:0000:00:03.2
PBB0      S4    *disabled  pci:0000:00:09.0
HDAC      S4    *disabled  pci:0000:00:08.0
XVR0      S4    *disabled  pci:0000:00:0c.0
XVR1      S4    *disabled  
P0P5      S4    *disabled  
P0P6      S4    *disabled  pci:0000:00:15.0
GLAN      S4    *enabled   pci:0000:03:00.0
P0P7      S4    *disabled  pci:0000:00:16.0
P0P8      S4    *disabled  
P0P9      S4    *disabled  
USB0      S3    *disabled  pci:0000:00:04.0
USB2      S3    *disabled  pci:0000:00:04.1
US15      S3    *disabled  pci:0000:00:06.0
US12      S3    *disabled  pci:0000:00:06.1
PWRB      S4    *enabled   
SLPB      S4    *enabled

Le digo al sistema que se suspenda y funciona como debería. Pero más tarde, después de despertarlo, la configuración cambia a:

USB0      S3    *disabled  pci:0000:00:04.0
USB2      S3    *enabled   pci:0000:00:04.1
US15      S3    *disabled  pci:0000:00:06.0
US12      S3    *enabled   pci:0000:00:06.1

o

USB0      S3    *enabled   pci:0000:00:04.0
USB2      S3    *enabled   pci:0000:00:04.1
US15      S3    *enabled   pci:0000:00:06.0
US12      S3    *enabled   pci:0000:00:06.1

¿Alguna idea?

Gracias por su respuesta. Desafortunadamente, no resolvió mi problema.

todos

/sys/bus/usb/devices/usb1/power/wakeup
/sys/bus/usb/devices/usb2/power/wakeup
/sys/bus/usb/devices/usb3/power/wakeup
/sys/bus/usb/devices/usb4/power/wakeup

así como

/sys/bus/usb/devices/3-1/power/wakeup

están configurados como deshabilitados, y la computadora portátil aún se activa por sí sola justo después de irse a dormir. Lo único a lo que parece reaccionar es a la configuración en /proc/acpi/wakeup, que sigue cambiando (restableciéndose) cada vez que apago/reinicio mi computadora portátil.

Mejor respuesta

Me encontré con este problema nuevamente en Ubuntu 12.10. Lamentablemente, las sugerencias del usuario MTS tampoco me funcionaron. Sin embargo, puede escribir un script para configurar automáticamente las propiedades de usb en /proc/acpi/wakeup justo antes de cada suspensión.

La solución se basa en crear un gancho de suspensión (basado en este artículo de Archwiki). Guarde lo siguiente como /usr/lib/pm-utils/sleep.d/45fixusbwakeup y asegúrese de hacerlo ejecutable (chmod +x /usr/lib/pm-utils/sleep.d/45fixusbwakeup ).

#!/bin/bash
case $1 in
    hibernate)
            echo "Going to suspend to disk!"
            ;;
    suspend)
            echo "Fixing acpi settings."
            for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;
            do
                    state=`cat /proc/acpi/wakeup | grep $usb | cut -f3 | cut -d' ' -f1 | tr -d '*'`
                    echo "device = $usb, state = $state"
                    if [ "$state" == "enabled" ]
                    then
                            echo $usb > /proc/acpi/wakeup
                    fi
            done
            echo "Suspending to RAM."
            ;;
    thaw)
            echo "Suspend to disk is now over!"
            ;;
    resume)
            echo "We are now resuming."
            ;;
    *)
            echo "Somebody is callin me totally wrong."
            ;;
esac

Lo que esto hace es cambiar el estado de cada Dispositivo USB que actualmente está habilitado o deshabilitado. Si solo desea cambiar dispositivos USB específicos, cambie el bucle for en el script. Por ejemplo para cambiar solo cambia USB1 y USB3

for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;

a

for usb in 'USB1' 'USB3';

Esperemos que esto ayude a alguien más que tenga el mismo problema. Este enfoque resolvió el problema para mí.

Relacionado:¿Ubuntu realmente puede ejecutar todos los programas de Windows?
Ubuntu
  1. Cómo hacer cambios permanentes en resolv.conf en Ubuntu [Consejo rápido]

  2. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  3. Linux – ¿Vincular /proc/mnt a /proc/mounts?

  4. Linux:¿cómo probar si un dispositivo de bloque es de solo lectura desde/sys o/proc?

  5. ¿Cómo hacer un cambio permanente en .config/user-dirs.dirs?

Cómo instalar Make en Ubuntu 20.04

¿Cómo se actualiza /etc/motd?

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

¿Cómo obtengo la ruta de un proceso en Unix/Linux?

¿Cómo hacer que la dirección del servidor de nombres sea permanente en /etc/resolv.conf?