Программное управление монитором samsung

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

В gddccontrol есть профили, но в ddccontrol не нашёл команд для их переключения. Придётся по пунктам. Выставил файлу своего монитора совю группу - теперь не надо вводить sudo. Добавил в kcron скрипт:
ddccontrol -p -r 0x10 -w 50
Только вот как задать интервалы, а не конкретные часы для срабатывания скриптов, я не понял… Цель такая: яркость на 50 нужно выставлять с 7:00 до 22:00 (можно по включению компьютера в эти часы); яркость на 0 нужно выставлять после 22:00 по 7:00.
Кстати есть нюанс: установленная через ddccontrol яркость сбрасывается монитором после вкл/выкл…

0
kot040188 - 18 Июль, 2016 - 22:17
Изображение пользователя kot040188.

Тут сказано как выключать монитор при выключении системы. А как его включать при включении системы?

+1
nitrofox - 19 Июль, 2016 - 00:17
Изображение пользователя nitrofox.

А в чем проблема? /etc/rc.local вроде выполняется при загрузке. Туда добавить команду включения монитора(Наверное).

0
kot040188 - 19 Июль, 2016 - 00:19
Изображение пользователя kot040188.

Опечатка. Надо выключить монитор при выключении системы. А то как-то нелогично выключать при включении ヅ

+1
nitrofox - 19 Июль, 2016 - 00:43
Изображение пользователя nitrofox.

Здесь мы видим, что нужный нам регистр это 0xd6, т.е. address и возможные значения. У меня это как видите 1 и 4 - Включен и Выключен.
/etc/rc.local выполняется при загрузке компьютера. Значит нужно добавить туда
sudo ddccontrol pci:00:12.0-0 -r 0xd6 -w 1
Я некогда не пользовался этой утилитой. Но как понял по той силке 1 - вкл | 4 - выкл

0
kot040188 - 19 Июль, 2016 - 01:10
Изображение пользователя kot040188.

Спасибо. Я совсем запутался со вкл/выкл. Бред несу ヅ Пойду спать, а завтра буду пробовать.

0
kot040188 - 19 Июль, 2016 - 17:26
Изображение пользователя kot040188.

Занёс ddccontrol -r 0xe1 -w 0 dev:/dev/i2c-1" | sudo tee /etc/default/halt, а ddccontrol -r 0xe1 -w 1 dev:/dev/i2c-1 в /etc/rc.local. Пока не проверял. А как быть со ждущим и спящим режимами? Куда пихануть команды?

0
kot040188 - 19 Июль, 2016 - 18:34
Изображение пользователя kot040188.

Вроде нагуглил, перед ждущим и спящим режимами /etc/pm/sleep.d/, но оно не работает… /usr/lib/pm-utils/sleep.d тоже не работает.

0
DarkneSS - 19 Июль, 2016 - 21:18
Изображение пользователя DarkneSS.

КотЭ, systemd же (read me).

0
kot040188 - 19 Июль, 2016 - 21:38
Изображение пользователя kot040188.

Я не понял, куда писать команды…

0
DarkneSS - 21 Июль, 2016 - 20:04
Изображение пользователя DarkneSS.

В файлы в каталоге /usr/lib/systemd/system-sleep

0
kot040188 - 21 Июль, 2016 - 21:12
Изображение пользователя kot040188.

У меня нет такого каталога. Да как оформлять скрипты туда так и не понял. На лоре тоже это сегодня предложили.

+2
DarkneSS - 22 Июль, 2016 - 06:24
Изображение пользователя DarkneSS.

Если нет, попробуйте создать.
Я не могу объяснить подробнее, чем написано в моей шпаргалке, пока вы не задаёте конкретных вопросов…

0
kot040188 - 22 Июль, 2016 - 17:06
Изображение пользователя kot040188.

Что делают скрипты?
Вот что вышло на лоре. Зашли в тупик.
kot@kot-MS-7930:/lib/systemd/system-sleep$ sudo /lib/systemd/system-sleep/monitor.sh pre
[sudo] пароль для kot:
sudo: unable to execute /lib/systemd/system-sleep/monitor.sh: No such file or directory
kot@kot-MS-7930:/lib/systemd/system-sleep$ ls
hdparm  monitor.sh  wpasupplicant

0
dyug - 22 Июль, 2016 - 17:29

Бит исполнения стоит?
chmod +x /lib/systemd/system-sleep/monitor.sh

0
kot040188 - 22 Июль, 2016 - 20:06
Изображение пользователя kot040188.

По ссылке всё написано. Перепечатывать не буду.

0
kot040188 - 23 Июль, 2016 - 00:04
Изображение пользователя kot040188.

Скопировал скрипт в хомяк:
kot@kot-MS-7930:~$ sudo ./monitor.sh pre
sudo: unable to execute ./monitor.sh: No such file or directory

Мистика…

0
kot040188 - 23 Июль, 2016 - 00:22
Изображение пользователя kot040188.

Вот что нашёл.

0
kot040188 - 23 Июль, 2016 - 00:25
Изображение пользователя kot040188.

Таки помогла ссылка. Но я ничего не понял. В конце сказано, что скрипт не запускался из-за неправильной кодировки. Посмотрел кодировку - utf8. Но решил взять другой рабочий скрипт sh (давно у меня есть) и в него скопировать содержимое monitor.sh. Результат: sudo /lib/systemd/system-sleep/monitor.sh pre работает с новым скриптом. Вот старый нерабочий скрипт, вот новый рабочий. В чём разница? Старый создавал по рутом, новый был создан давно под пользователем. Теперь монитор выключается при спячке и включается после. Как провернуть такое же при вкл/выкл системы?

0
DarkneSS - 24 Июль, 2016 - 01:31
Изображение пользователя DarkneSS.

Неправильные (виндовые) переносы строк.

0
kot040188 - 24 Июль, 2016 - 01:33
Изображение пользователя kot040188.

Это куда положить?

0
DarkneSS - 24 Июль, 2016 - 12:10
Изображение пользователя DarkneSS.

Это ответ на вопрос, в чём разница. Можно положить себе в память.

0
kot040188 - 24 Июль, 2016 - 15:30
Изображение пользователя kot040188.

Рано радовался. Почему-то при первом входе в спячку после перезагрузки монитор выключается. При выходе не включается. Больше скрипт не действует, до перезагрузки…
О, а сейчас сработал в обе стороны. Мистика

0
DarkneSS - 24 Июль, 2016 - 20:03
Изображение пользователя DarkneSS.

Попробуйте sleep в одну секунду добавить, может, не всё успело быстро ожить.

0
kot040188 - 24 Июль, 2016 - 23:22
Изображение пользователя kot040188.

Куда этот sleep засунуть? Поподробнее можно?

0
DarkneSS - 25 Июль, 2016 - 06:23
Изображение пользователя DarkneSS.

sleep 1
команда

или
sleep 1 && команда

0
kot040188 - 28 Июль, 2016 - 08:32
Изображение пользователя kot040188.

Ничего не даёт. Скрипт, то срабатывает, то нет… Видимо от погоды зависит.

0
dyug - 28 Июль, 2016 - 10:25

от кота. И его упорного нежелания понять, что переменные окружения ДОЛЖНЫ быть описаны ВСЕГДА.

0
kot040188 - 28 Июль, 2016 - 11:06
Изображение пользователя kot040188.

Значит мне ещё рано…

0
DarkneSS - 22 Июль, 2016 - 18:55
Изображение пользователя DarkneSS.

Первый останавливает и запускает nut. Второй (мой) — pdnsd.

0
kot040188 - 20 Июль, 2016 - 16:49
Изображение пользователя kot040188.

Цель такая: яркость на 50 нужно выставлять с 7:00 до 22:00 (можно по включению или выходу из спячки компьютера в эти часы); яркость на 0 нужно выставлять с 22:00 по 7:00. Никто не знает?

+1
nitrofox - 20 Июль, 2016 - 18:41
Изображение пользователя nitrofox.

Ну можно попробовать написать скрипт который будет проверять время. Если с 7 и до 22 он будет выставлять 50. Иначе 0. Выполнять его каждый час и при загрузке ПК.
h=`date +%H`
if [ "$h" -ge "7" -a "$h" -le "22" ]
then 
    echo "Kuku"
else
    echo "Boo"
fi

0
kot040188 - 20 Июль, 2016 - 18:43
Изображение пользователя kot040188.

Выполнять его каждый
То есть почти час я буду с другой яркостью? Я думал cron более гибкий…

0
kot040188 - 23 Июль, 2016 - 05:31
Изображение пользователя kot040188.

Кажись понял как надо сделать. Скрипт запускается в 7:00, 21:00, при старте и пробуждении системы. Если 7:00-21:00, ставит яркость на 50%; если 21:00-7:00, ставит яркость на 0%.
Помогите такое сбацать.
Вот только монитор не сохраняет выставленную через ddccontrol яркость выходя из спячки, а это значит, что придётся отключить в настройках энергосбережение экрана и включить какую-нибудь чёрную заставку. Монитор будет постоянно включён, греться и расходовать электричество…

0
nitrofox - 23 Июль, 2016 - 19:31
Изображение пользователя nitrofox.

Я создал 3 скрипта в папке /opt/MySuperScript
Brightness.sh
#! /bin/bash

h=`date +%H`
if [ "$h" -ge "7" -a "$h" -le "22" ]
then 
   
    ddccontrol dev:/dev/i2c-4 -r 0x10 -w 50
else
   
    ddccontrol dev:/dev/i2c-4 -r 0x10 -w 0
fi

MonitorOff.sh
#! /bin/bash
ddccontrol dev:/dev/i2c-4 -r 0xd6 -w 4

MonitorOn.sh
#! /bin/bash
ddccontrol dev:/dev/i2c-4 -r 0xd6 -w 1

Если вы что-то подобное навелосипедили.. То просто нужно в скрипт MonitorOn.sh после включения монитора добавить /opt/MySuperScript/Brightness.sh
Хотя я так и не довел до конца свою идею =) Оказалось что у меня в опциях монитора есть настройка чтоб этот гребаный светодиод не загорался =) И после этого надобность отключать монитор отпала.

0
kot040188 - 23 Июль, 2016 - 19:40
Изображение пользователя kot040188.

Хороший монитор. Производитель?

0
nitrofox - 23 Июль, 2016 - 20:29
Изображение пользователя nitrofox.

viewsonic. Очень старый. но в тоже время прикольный=) Из самых жестких недостатков это ножка монитора встроена в сам монитор. Я такое в первые увидел. =)

0
kot040188 - 23 Июль, 2016 - 21:56
Изображение пользователя kot040188.

Навелосипедил:
#!/bin/sh

h=`date +%H`
if [ "$h" -ge "7" -a "$h" -le "20" ]
then 
   
    ddccontrol -r 0x10 -w 50  dev:/dev/i2c-1
else
   
    ddccontrol -r 0x10 -w 0  dev:/dev/i2c-1
fi

Работает от sudo. Видимо надо писать в etc/crontab. Был хороший вариант с изменением группы файла монитора, так файлы устройств пересоздаются при перезагрузке и группа слетает. Надо добавить в cron и в старт/пробуждение системы и в выход из энергосбережения. Вот со вторым и третьим надо ещё разобраться…

0
kot040188 - 24 Июль, 2016 - 04:52
Изображение пользователя kot040188.

Видимо надо писать в etc/crontab
Ещё навелосипедил файл cron:
SHELL=/bin/bash
MAILTO=root
00 7 * * * /home/kot/bin/installin/monitorbr.sh
00 21 * * * /home/kot/bin/installin/monitorbr.sh
@reboot /home/kot/bin/installin/monitorbr.sh

Ну и далее crontab /home/kot/bin/installin/cron. Правильно ли сделал? Осталось событие выхода из спячки системы и монитора…

0
kot040188 - 23 Июль, 2016 - 19:39
Изображение пользователя kot040188.

Вот только монитор не сохраняет выставленную через ddccontrol яркость выходя из спячки, а это значит, что придётся отключить в настройках энергосбережение экрана и включить какую-нибудь чёрную заставку. Монитор будет постоянно включён, греться и расходовать электричество…
Сейчас придумал: можно отловить событие выхода из спячки монитора и выставлять яркость…

0
kot040188 - 20 Июль, 2016 - 16:53
Изображение пользователя kot040188.

Фигушки и /etc/rc.local и /etc/default/halt не дали нужного эффекта. Куда же кинуть команду для её исполнения при выключении/включении и перед ждущим/спящим режимами и после выхода из них?

+3
nitrofox - 20 Июль, 2016 - 18:57
Изображение пользователя nitrofox.

Так что именно не работает? =)
Вот такой скрипт выключает монитор и потом его обратно включит(10 секунд)? Конечно нужно исправить dev, -r и -w под свой монитор.
#! /bin/bash
ddccontrol dev:/dev/i2c-4 -r 0xd6 -w 4
sleep 10s
ddccontrol dev:/dev/i2c-4 -r 0xd6 -w 1

У меня сработал. Возможно во время выполнения скрипта должен быть запущен X сервер.

0
kot040188 - 20 Июль, 2016 - 18:58
Изображение пользователя kot040188.

Ничего е работает кроме команды в консоли.

0
kot040188 - 21 Июль, 2016 - 16:02
Изображение пользователя kot040188.

На лоре посоветовали задействовать systemd. Сбацали скрипт:
[Unit]
Before=hibernate.target
Before=hybrid-sleep.target
Before=suspend.target
Before=shutdown.target
Before=sleep.target
  
[Service]
Type=oneshot
ExecStart=/usr/bin/ddccontrol -r 0xe1 -w 0 dev:/dev/i2c-1
RemainAfterExit=yes

[Install]
WantedBy=shutdown.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
WantedBy=suspend.target

Кинул в /etc/systemd/system/. sudo systemctl restart monitor.service - работает. Но при засыпании и выключении системы нет. Хоть ты тресни… Я смотрю все файлы устройств пересоздаются после перезагрузки. Может в этом дело?

0
kot040188 - 27 Июль, 2016 - 21:04
Изображение пользователя kot040188.

/usr/lib/pm-utils/sleep.d
это для сна. А для старта/выклчения системы где????????????? Гугл не признаётся!

0
kot040188 - 28 Июль, 2016 - 15:19
Изображение пользователя kot040188.

С горем пополам понял, что /lib/systemd/system-shutdown/ это только для выключения и скрипт как для /lib/systemd/system-sleep/ не подходит. Надо только одну команду выключения монитора писать, поэтому он у меня не работал. Отредактировал. Но скрипт срабатывает и при выключении и при перезагрузке. Как запретить его выполнение при перезагрузке? И наконец, как выполнить скрипт включения монитора при включении системы максимально рано? Кидал скрипт в /lib/systemd/system/ - нет результата. Помогите кто чем может!!!!!!!!!!

0
DarkneSS - 29 Июль, 2016 - 18:18
Изображение пользователя DarkneSS.

Для старта/выключения надо юнит написать для systemd. Как, не спрашивайте.

0
kot040188 - 29 Июль, 2016 - 18:42
Изображение пользователя kot040188.

Да писал я уже для ждущего на лоре. Не работал он. Потом подсказали кидать в /lib/systemd/system-sleep/. Может я чего не учёл? Вот как запретить исполнение скрипта в /lib/systemd/system-shutdown/ при перезагрузке?

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

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