Měl jsem problém s probouzením Ubuntu 12.04 ihned po přechodu do režimu spánku. Problém jsem vyřešil změnou nastavení v /proc/acpi/wakeup, jak je navrženo v této otázce:Jak zabráním okamžitému probuzení z režimu spánku a/nebo hibernace?.
Po změně nastavení systém přejde bezchybně do režimu spánku a zůstane pozastavený, ale poté, co ho znovu probudím, se nastavení v /proc/acpi/wakeup liší od toho, na jaké jsem je nastavil.
Před pozastavením:
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
Říkám systému, aby se pozastavil, a funguje, jak má. Ale později po probuzení se nastavení změní na:
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
nebo
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
Nějaké nápady?
Děkuji za Vaši odpověď. Bohužel to nevyřešilo můj problém.
všechny
/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
stejně jako
/sys/bus/usb/devices/3-1/power/wakeup
jsou vypnuty a notebook se i přesto probouzí sám hned po uspání. Zdá se, že jediná věc, na kterou reaguje, je nastavení v /proc/acpi/wakeup, které se neustále mění (resetuje) pokaždé, když vypnu/restartuji notebook.
Nejlepší odpověď
Znovu jsem narazil na tento problém na Ubuntu 12.10. Návrhy od uživatele MTS mi bohužel také nefungovaly. Můžete však napsat skript, který automaticky nastaví vlastnosti usb v /proc/acpi/wakeup
těsně před každým pozastavením.
Řešení je založeno na vytvoření závěsného háku (na základě tohoto článku Archwiki). Uložte následující jako /usr/lib/pm-utils/sleep.d/45fixusbwakeup
a ujistěte se, že je spustitelný (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
Tím se změní stav každého Zařízení USB, které je aktuálně povoleno, je zakázáno. Pokud chcete změnit pouze konkrétní zařízení USB, změňte smyčku for ve skriptu. Například změnit pouze USB1 a USB3 změnit
for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;
do
for usb in 'USB1' 'USB3';
Snad to pomůže někomu dalšímu, kdo má stejný problém. Tento přístup za mě problém vyřešil.
Související:Může Ubuntu skutečně spustit všechny programy Windows?