мій ноутбук Dell поширюється на цю помилку з ядром 3.14. Як вирішення, я написав простий сценарій
/ usr / bin / яскравість-виправлення:
#!/bin/bash
echo 0 > /sys/class/backlight/intel_backlight/brightnes
(І зробив виконуваний файл: chmod +x /usr/bin/brightness-fix
)
і системний сервіс, що викликає його, який виконується при запуску:
/etc/systemd/system/brightness-fix.service
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=forking
ExecStart=/usr/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
#RemainAfterExit=yes
#SysVStartPriority=99
[Install]
WantedBy=multi-user.target
і ввімкнено: systemctl enable /etc/systemd/system/brightness-fix.service
Це працює як шарм, і я можу керувати яскравістю дисплея так, як хотілося. Проблема виникає, коли ноутбук поновлюється після сну (наприклад, при закритті губи ноутбука): контроль яскравості більше не працює, якщо я не вручну виконую сценарій fisrt вище:/usr/bin/brightness-fix
Як я можу створити інший системний сервіс, як мій вище, для виконання під час резюме?
EDIT:
Відповідно до коментарів нижче, я змінив brightness-fix.service
подібне:
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=oneshot
ExecStart=/usr/local/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=multi-user.target sleep.target
також я додав echo "$1 $2" > /home/luca/br.log
до свого сценарію, щоб перевірити, чи він справді виконаний. Сценарій він фактично виконується також при резюме ( post suspend
), але він не має ефекту (підсвічування становить 100% і не може бути змінена). Я також спробував вести журнал, $DISPLAY
і $USER
, коли час відновлення, вони порожні. Тому я здогадуюсь, що сценарій виконується занадто рано, коли прокидається зі сну. Будь-який натяк?
/usr/local/bin
не так /usr/bin
. цей каталог зарезервований лише для менеджера пакунків.
sleep.target
запустить пристрій, коли комп'ютер спить, а не коли він поновлюється. Дивіться мою відповідь нижче щодо файлу одиниці, який працював у мене зі схожою проблемою.
WantedBy=sleep.target
...