J'ai eu un problème avec mon réveil Ubuntu 12.04 immédiatement après la suspension. J'ai résolu le problème en modifiant les paramètres dans/proc/acpi/wakeup, comme suggéré dans la question suivante: Comment empêcher le réveil immédiat d'une suspension et/ou d'une mise en veille prolongée? .
Après avoir modifié les paramètres, le système passe parfaitement en mode suspension et reste suspendu. Toutefois, après ma réactivation, les paramètres de/proc/acpi/wakeup sont différents de ceux définis.
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 cela 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.
tous
/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
aussi bien que
/sys/bus/usb/devices/3-1/power/wakeup
sont désactivés et le portable se réveille tout de suite après le coucher. Les seules choses auxquelles il semble réagir sont les paramètres de/proc/acpi/wakeup, qui ne cessent de changer (réinitialisation) à chaque fois que je mets mon ordinateur hors tension/redémarre.
J'ai rencontré ce problème à nouveau sur Ubuntu 12.10. Les suggestions de l'utilisateur MTS n'ont malheureusement pas 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 hook de suspension (basé sur cet article d'Archwiki ). Enregistrez les éléments suivants 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é ou désactivé. Si vous souhaitez uniquement modifier des périphériques USB spécifiques, modifiez la boucle for dans le script. Par exemple, pour changer uniquement les modifications USB1 et USB3
for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;
à
for usb in 'USB1' 'USB3';
J'espère que cela aidera quelqu'un d'autre qui a le même problème. Cette approche a résolu le problème pour moi.
Peut-être que http://forum.xbmc.org/showthread.php?tid=121158 vous aidera?
C'est ce qu'il dit:
Pour ceux qui effectuent une mise à jour vers le noyau 3.2 (ce qui devrait être tout le monde à cause de l'exploit root récent), vous remarquerez que votre réveil USB est probablement interrompu. Ils ont modifié la politique de réveil par défaut ( http://www.spinics.net/lists/linux-usb/msg53661.html ). Vous devrez donc apporter quelques modifications:
- vous n'avez plus besoin d'activer le réveil dans
/proc/acpi/wakeup
, il est activé par défaut- vous devez activer le réveil pour le concentrateur USB en plus du périphérique dans
/sys/bus/usb/devices/*/power/wakeup
Donc ça:
echo USB1 > /proc/acpi/wakeup echo enabled > /sys/bus/usb/devices/3-1/power/wakeup
Devient:
echo enabled > /sys/bus/usb/devices/usb3/power/wakeup echo enabled > /sys/bus/usb/devices/3-1/power/wakeup
Espérons que cela évite aux autres de résoudre le même problème.
Pour Ubuntu 15+, vous devez utiliser systemd
au lieu de rc.local
. Vous pouvez utiliser Google "Créer un service systemd" et suivre les instructions, mais notez que rediriger la sortie vers /proc/acpi/wakeup
est délicat. Pour que cela fonctionne correctement, vous devez faire quelque chose comme:
/bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'
Exemple de sortie pour le fichier de service (par exemple, /etc/systemd/system/suspendfix.service
):
[Unit]
Description=fix to prevent system from waking immediately after suspend
[Service]
ExecStart=/bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Ou ici dans ce Gist