GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie kann man Änderungen an /proc/acpi/wakeup dauerhaft vornehmen?

Ich hatte ein Problem mit meinem Ubuntu 12.04, das sofort nach dem Suspend aufwachte. Ich habe das Problem gelöst, indem ich die Einstellungen in /proc/acpi/wakeup geändert habe, wie in dieser Frage vorgeschlagen:Wie verhindere ich das sofortige Aufwachen aus dem Suspend und/oder Ruhezustand?.

Nach dem Ändern der Einstellungen geht das System einwandfrei in den Suspend-Zustand und bleibt suspendiert, aber nachdem ich es wieder aufgeweckt habe, sind die Einstellungen in /proc/acpi/wakeup anders als die, auf die ich sie gesetzt habe.

Vor dem Suspendieren:

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

Ich sage dem System, es zu unterbrechen, und es funktioniert so, wie es sollte. Aber später nach dem Aufwecken werden die Einstellungen geändert 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

oder

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

Irgendwelche Ideen?

Danke für Ihre Antwort. Leider hat es mein Problem nicht gelöst.

alles von

/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

sowie

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

deaktiviert sind und das Notebook nach dem Einschlafen trotzdem von selbst aufwacht. Das einzige, worauf es zu reagieren scheint, sind die Einstellungen in /proc/acpi/wakeup, die sich jedes Mal ändern (zurücksetzen), wenn ich mein Notebook ausschalte/neu starte.

Beste Antwort

Ich bin unter Ubuntu 12.10 erneut auf dieses Problem gestoßen. Die Vorschläge von User MTS haben bei mir leider auch nicht funktioniert. Sie können jedoch ein Skript schreiben, um die USB-Eigenschaften automatisch in /proc/acpi/wakeup festzulegen direkt vor jedem Suspend.

Die Lösung basiert auf der Erstellung eines Suspend-Hooks (basierend auf diesem Archwiki-Artikel). Speichern Sie Folgendes als /usr/lib/pm-utils/sleep.d/45fixusbwakeup , und stellen Sie sicher, dass es ausführbar ist (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

Dadurch ändert sich der Status von every USB-Gerät, das derzeit aktiviert ist, wird deaktiviert. Wenn Sie nur bestimmte USB-Geräte ändern möchten, ändern Sie die for-Schleife im Skript. Zum Beispiel nur USB1 und USB3 ändern

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

zu

for usb in 'USB1' 'USB3';

Hoffentlich hilft das jemand anderem, der das gleiche Problem hat. Dieser Ansatz hat das Problem für mich gelöst.

Verwandte:Kann Ubuntu wirklich alle Windows-Programme ausführen?
Ubuntu
  1. So nehmen Sie Änderungen in resolv.conf dauerhaft in Ubuntu vor [Kurztipp]

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. Wie kann man dauerhafte Änderungen an .config/user-dirs.dirs vornehmen?

  4. Wie wird /etc/motd aktualisiert?

  5. Wie starte ich Apache neu, um httpd.conf-Änderungen dauerhaft zu machen?

Wie man dateispezifische Einstellungsänderungen in Vim mit Modeline vornimmt

So installieren Sie Make unter Ubuntu 20.04

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie mache ich die Nameserver-Adresse in /etc/resolv.conf dauerhaft?