GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment apporter des modifications à /proc/acpi/wakeup Permanent ?

J'ai eu un problème avec mon Ubuntu 12.04 qui se réveillait immédiatement après être passé en suspension. J'ai résolu le problème en modifiant les paramètres dans /proc/acpi/wakeup, comme suggéré dans cette question :Comment puis-je empêcher le réveil immédiat de la suspension et/ou de l'hibernation ?.

Après avoir modifié les paramètres, le système se met parfaitement en veille et reste suspendu, mais une fois que je l'ai réactivé, les paramètres dans /proc/acpi/wakeup sont différents de ce que je leur ai défini.

Avant d'aller suspendre :

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

Je dis au système de suspendre, et il fonctionne comme il se doit. Mais plus tard, après le réveil, les paramètres sont modifiés en :

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

ou

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

Des idées ?

Merci pour votre réponse. Malheureusement, cela n'a pas résolu mon problème.

tout

/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

ainsi que

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

sont désactivés et l'ordinateur portable se réveille tout seul juste après s'être mis en veille. La seule chose à laquelle il semble réagir, ce sont les paramètres dans /proc/acpi/wakeup, qui ne cessent de changer (réinitialiser) chaque fois que j'éteins/redémarre mon ordinateur portable.

Meilleure réponse

J'ai de nouveau rencontré ce problème sur Ubuntu 12.10. Les suggestions de l'utilisateur MTS n'ont malheureusement pas non plus fonctionné pour moi. Cependant, vous pouvez écrire un script pour définir automatiquement les propriétés usb dans /proc/acpi/wakeup juste avant chaque suspension.

La solution est basée sur la création d'un crochet de suspension (basé sur cet article Archwiki). Enregistrez ce qui suit sous /usr/lib/pm-utils/sleep.d/45fixusbwakeup , et assurez-vous de le rendre exécutable (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

Cela change le statut de chaque Périphérique USB actuellement activé à désactivé. Si vous souhaitez uniquement modifier des périphériques USB spécifiques, modifiez la boucle for dans le script. Par exemple, pour modifier uniquement USB1 et USB3, modifiez

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

à

for usb in 'USB1' 'USB3';

Espérons que cela aide quelqu'un d'autre qui a le même problème. Cette approche a résolu le problème pour moi.

En relation :Ubuntu peut-il vraiment exécuter tous les programmes Windows ?
Ubuntu
  1. Comment apporter des modifications de paramètres spécifiques à un fichier dans Vim à l'aide de Modeline

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Linux - Comment tester si un périphérique bloc est en lecture seule depuis /sys ou /proc ?

  4. Comment apporter une modification permanente à .config/user-dirs.dirs ?

  5. Comment obtenir le chemin d'un processus sous Unix / Linux

Comment installer Make sur Ubuntu 20.04

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

/proc/[pid]/pagemaps et /proc/[pid]/maps | linux

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Comment rendre l'adresse du serveur de noms permanente dans /etc/resolv.conf ?