17.04 и ждущий режим из терминала

Изображение пользователя lord_i.

И снова радость принесла 17.04.
Сколько себя помню отправлял компы удаленно в ждущий режим простой командой
sudo pm-suspend
Но, повидимому, шара кончилась... :) Разработчики решили что это очень просто и добавили при выходе из ждущего режима
сообщение "Memory corruption detected in low memory" - видимо чтоб дополнительно развлечь пользователя.
Симптомы напоминают баг четырехлетней давности, при этом если перевести комп в ждущий режим из гуя - все работает без нареканий.
Отсюда вопрос - как корректно отправить в ждущий режим комп с 17.04 из терминала?
ЗЫ Вышеописанные симптомы проявляются не на всех машинах. Хотя работает pm-suspend все равно криво. Например, на ноуте не выходит запрос пароля после пробуждения.
Исследую вопрос, жду Ваших советов.

+2
kot040188 - 9 Май, 2017 - 14:33
Изображение пользователя kot040188.

Я себе такие кнопки на панель вынес:
systemctl reboot
systemctl poweroff
systemctl suspend
systemctl hibernate
systemctl hybrid-sleep

Работают без нареканий. К тому же не надо никаких паролей.

0
lord_i - 9 Май, 2017 - 14:41
Изображение пользователя lord_i.

systemctl suspend
Работает вроде но не совсем... :(
Для pm-suspend можно задать какие драйвера выгружать перед суспендом а тут хз как это сделать.
Есть специфические устройства - например, спутникоый тюнер, он после сна не оживает если драйвер не перезагрузить.
Кроме того на второй-третий раз systemctl suspend вызывает тот же самый "Memory corruption detected in low memory"... Жопа какая-то а не релиз, блин...

0
kot040188 - 9 Май, 2017 - 14:44
Изображение пользователя kot040188.

Ну сам systemctl тут не при чём. Либо релиз либо железо такое.

+3
lord_i - 9 Май, 2017 - 15:59
Изображение пользователя lord_i.

Тут есть как выгружать/загружать драйвера для systemctl suspend.
Пробую ...
--- updated ---
Проверил - решение годное, все работает.
Кстати, перед выгрузкой модулей в скрипте нужно останавливать программы, которые ими пользуются иначе драйвера не выгружаются.
Для ленивых изложу решение здесь.
1. Создаем файл /lib/systemd/system-sleep/suspend-modules и присваиваем ему права на запуск.
2. Содежимое файла такое:
#!/bin/bash

case $1 in
    pre)
        for mod in $(</etc/suspend-modules.conf); do
            modprobe -r $mod
        done
    ;;
    post)
        for mod in $(</etc/suspend-modules.conf); do
            modprobe $mod
        done
    ;;
esac

* перед выгрузкой модулей можно добавить остановку необходимых программ
создаем файл
/etc/suspend-modules.conf
И в нем перечисляем модули, необходимые к выгрузке
один модуль на строчку
например:
ath5k
r8169

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры