Ubuntu 16.04: восстановление частоты обновления экрана после приостановки / возобновления

4

Даже после поиска в Google, я не могу найти ответ на этот, может быть, простой вопрос. Один из моих компьютеров подключен к домашнему главному телевизору с помощью кабеля DP / HDMI. Все работает нормально. Разрешение экрана определяется правильным образом, 1920x1080, даже если частота обновления установлена ​​на 50 Гц (с чересстрочной разверткой 50 Гц). Я могу запустить xrandr -r 60 , а затем отобразить хороший рабочий стол 1920x1080 @ 60 Гц. (Прогрев 60 Гц).

Однако, когда я перестаю использовать компьютер некоторое время, он автоматически переходит в режим сна, и, когда я его разбужу, разрешение устанавливается на эту плохую частоту обновления 50 Гц с чересстрочной разверткой.

Я добавил сценарий 15_screen-resume в /etc/pm/sleep.d следующим образом:

#!/bin/sh

case "" in
    resume)
        xrandr -r 60
        date > /tmp/resume.txt
    ;;
esac

Я могу проверить, запущен ли этот скрипт с помощью команды date > /tmp/resume.txt . Я знаю, что это работает, если я запускаю pm-suspend из оболочки, жду компьютера, чтобы спать, а затем разбудить его. Но этот сценарий не вызывается, если компьютер переходит в режим сна самостоятельно после периода бездействия.

Вопрос: как вызвать пользовательский скрипт при пробуждении после запуска компьютера Ubuntu 16.04 вошел в спящий режим после периода бездействия?

Спасибо всем за вашу помощь.

    
задан MaxAuray 10.11.2016 в 07:50
источник

1 ответ

0

Это может ввести в заблуждение множество различных способов, с помощью которых компьютер может спать с настройками acpi, gnome, pm-utils, управлением питанием (или что-то в этом роде) и systemd.

В вашем случае вам нужно создать скрипт в /lib/systemd/system-sleep , который выглядит следующим образом:

#!/bin/sh

case / in
  pre/*)
    echo "Going to ..."
    # Place your pre suspend commands here, or 'exit 0' if no pre suspend action required
    exit 0
    ;;
  post/*)
    echo "Waking up from ..."
    # Place your post suspend (resume) commands here, or 'exit 0' if no post suspend action required
    sleep 2
    xrandr -r 60
    date > /tmp/resume.txt
    ;;
esac

Чтобы убедиться, что скрипт создан с правильными разрешениями, скопируйте и создайте существующий скрипт, а затем отредактируйте его:

cd /lib/systemd/system-sleep
sudo cp wpasupplicant tv_refresh
gksu gedit tv_refresh

Пауза sleep 2 может оказаться ненужной для вас, но для моей настройки необходимо было восстановить звук с ноутбука обратно на HDMI TV.

Строки echo являются необязательными, но удобны, потому что они отображаются в /var/log/syslog .

    
ответ дан WinEunuuchs2Unix 20.11.2016 в 03:42