У меня была проблема с пробуждением Ubuntu 12.04 сразу после перехода в режим ожидания. Я решил проблему, изменив настройки в / proc / acpi / wakeup, как было предложено в этом вопросе: Как предотвратить немедленный пробуждение от приостановки и / или гибернации? .
После изменения настроек система безукоризненно переходит в режим ожидания и остается в подвешенном состоянии, но после того, как я снова ее включаю, настройки в / proc / acpi / wakeup отличаются от настроек, которые я им установил.
Прежде чем перейти к приостановке:
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
Я говорю системе приостановить, и она работает как надо. Но позже, после пробуждения, настройки изменяются на:
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
или
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
Есть идеи?
<час>Спасибо за ваш ответ , К сожалению, это не решило мою проблему.
все из
/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
, а также
/sys/bus/usb/devices/3-1/power/wakeup
отключены, и ноутбук все равно сам просыпается сразу после сна. Единственное, на что он реагирует, это настройки в / proc / acpi / wakeup, которые меняются (сбрасываются) каждый раз, когда я выключаю / перезагружаю свой ноутбук.
Я снова столкнулся с этой проблемой в Ubuntu 12.10. Предложения от пользователя МТС, к сожалению, также не сработали для меня. Однако вы можете написать скрипт для автоматической установки свойств usb в /proc/acpi/wakeup
перед каждой приостановкой.
Решение основано на создании подвесного хука (на основе этой статьи Archwiki ). Сохраните следующее как /usr/lib/pm-utils/sleep.d/45fixusbwakeup
и убедитесь, что оно выполняется (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
Для этого нужно изменить состояние каждого USB-устройства, которое в данный момент включено на отключенное. Если вы хотите изменить только определенные USB-устройства, измените цикл for в скрипте. Например, чтобы изменить только USB1 и USB3, измените
for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;
на
for usb in 'USB1' 'USB3';
. Надеюсь, это поможет кому-то еще, кто имеет такую же проблему. Этот подход решил проблему для меня.
Для Ubuntu 15+ вы должны использовать systemd
вместо rc.local
. Вы можете зайти в Google «Создание службы systemd» и следовать инструкциям, но учтите, что перенаправить вывод на /proc/acpi/wakeup
довольно сложно. Чтобы заставить его работать правильно, вы должны сделать что-то вроде:
/bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'
Пример вывода для служебного файла (например, /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
Возможно, http://forum.xbmc.org/showthread.php?tid=121158 поможет?
Это - то, что это говорит:
Для тех, кто обновляет к 3,2 ядрам (который должен быть всеми из-за недавнего корневого использования), Вы заметите, что Ваше пробуждение USB, вероятно, повреждается. Они изменили политику пробуждения по умолчанию (http://www.spinics.net/lists/linux-usb/msg53661.html), таким образом, необходимо будет внести несколько изменений:
- Вы больше не должны включать пробуждение в
/proc/acpi/wakeup
, это включено по умолчанию- необходимо включить пробуждение для концентратора USB в дополнение к устройству в
/sys/bus/usb/devices/*/power/wakeup
Так, это:
echo USB1 > /proc/acpi/wakeup echo enabled > /sys/bus/usb/devices/3-1/power/wakeup
Становится:
echo enabled > /sys/bus/usb/devices/usb3/power/wakeup echo enabled > /sys/bus/usb/devices/3-1/power/wakeup
Надо надеяться, это сохраняет других от поиска и устранения неисправностей той же проблемы.