Проблемы с адаптацией спящего крючка к системному
По какой-то причине у моей машины возникают проблемы с подвеской, в частности, она возобновляется, как только приостанавливается. После некоторых исследований мне удалось решить эту проблему 14.04, используя следующий цикл, согласно этому ответу: https://Ask-ubuntu.ru/a/268172
#!/bin/bash
case $1 in
hibernate)
echo "Going to suspend to disk!"
;;
suspend)
echo "Fixing acpi settings."
for usb in 'XHC' 'EHC1' 'EHC2';
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
Однако с новым systemd это решение больше не работает, мне удалось создать и поместить тот же сценарий в /usr/lib/systemd/system-sleep/, однако это не работает, поскольку не выполняется, вот вывод моего журнала:
may 22 22:59:43 waiobook systemd[1]: Starting Suspend...
may 22 22:59:43 waiobook systemd-sleep[1372]: Suspending system...
may 22 22:59:49 waiobook systemd-sleep[1372]: System resumed.
may 22 22:59:49 waiobook systemd[1]: Started Suspend.
may 22 20:09:03 waiobook systemd[1]: Starting Suspend...
may 22 20:09:03 waiobook systemd-sleep[2674]: Suspending system...
may 22 20:09:07 waiobook systemd-sleep[2674]: System resumed.
may 22 20:09:07 waiobook systemd[1]: Started Suspend.
Так я предполагаю, что я делаю что-то не так со сценарием?
Любая помощь обязательна.
1 ответ
Параметры скрипта изменились так же, как и каталог. $1
это "пост" на резюме / оттепель, "предварительно" в противном случае. $2
в обоих случаях содержит "suspend", "hibernate" или "hybrid-sleep". Изменение вашего примера:
#!/bin/bash
case $1 in
pre) case $2 in
hibernate)
echo "Going to suspend to disk!"
;;
hybrid-sleep)
echo "Going to suspend to disk and ram!"
;;
suspend)
echo "Fixing acpi settings."
for usb in 'XHC' 'EHC1' 'EHC2';
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."
;;
*)
echo "Somebody is callin me totally wrong."
;;
esac ;;
post)
echo "We are now resuming from $2."
;;
*)
echo "Somebody is callin me totally wrong."
;;
esac