GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come apportare modifiche a /proc/acpi/wakeup permanenti?

Ho avuto un problema con il mio Ubuntu 12.04 che si è svegliato subito dopo essere entrato in sospensione. Ho risolto il problema modificando le impostazioni in /proc/acpi/wakeup, come suggerito in questa domanda:come posso impedire la riattivazione immediata dalla sospensione e/o dall'ibernazione?.

Dopo aver modificato le impostazioni, il sistema va in sospensione senza problemi e rimane sospeso, ma dopo averlo riattivato, le impostazioni in /proc/acpi/wakeup sono diverse da quelle su cui le ho impostate.

Prima di sospendere:

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

Dico al sistema di sospendere e funziona come dovrebbe. Ma più tardi, dopo averlo riattivato, le impostazioni vengono modificate in:

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

Qualche idea?

Grazie per la vostra risposta. Purtroppo non ha risolto il mio problema.

tutto

/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

così come

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

sono impostati su disabilitati e il notebook si riattiva da solo subito dopo essere andato a dormire. L'unica cosa a cui sembra reagire sono le impostazioni in /proc/acpi/wakeup, che continuano a cambiare (ripristinare) ogni volta che spengo/riavvio il mio notebook.

Migliore risposta

Mi sono imbattuto di nuovo in questo problema su Ubuntu 12.10. Purtroppo anche i suggerimenti dell'utente MTS non hanno funzionato per me. Tuttavia, puoi scrivere uno script per impostare automaticamente le proprietà usb in /proc/acpi/wakeup subito prima di ogni sospensione.

La soluzione si basa sulla creazione di un gancio di sospensione (basato su questo articolo di Archwiki). Salva quanto segue come /usr/lib/pm-utils/sleep.d/45fixusbwakeup e assicurati di renderlo eseguibile (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

Ciò che fa è cambiare lo stato di ogni Dispositivo USB attualmente abilitato a disabilitato. Se desideri modificare solo dispositivi USB specifici, modifica il ciclo for nello script. Ad esempio per modificare solo USB1 e USB3 cambia

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

a

for usb in 'USB1' 'USB3';

Speriamo che questo aiuti qualcun altro che ha lo stesso problema. Questo approccio mi ha risolto il problema.

Correlati:Ubuntu può davvero eseguire tutti i programmi Windows?
Ubuntu
  1. Come apportare modifiche alle impostazioni specifiche del file in Vim usando Modeline

  2. Come aggiornare OpenSUSE 12.2 a 12.3 (desktop e server)

  3. Linux – Collegamento di /proc/mnt a /proc/mounts?

  4. Linux:come verificare se un dispositivo a blocchi è di sola lettura da /sys o /proc?

  5. Come apportare modifiche permanenti a .config/user-dirs.dirs?

Come installare Make su Ubuntu 20.04

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

/proc/[pid]/pagemaps e /proc/[pid]/maps | Linux

Come scoprire da quale cartella è in esecuzione un processo?

Come rendere permanente l'indirizzo del server dei nomi in /etc/resolv.conf?