Демонический systemd-backlight@backlight:amdgpu_bl0.service

Хе-хе.
После обновления заметил, что мой ноут не сохраняет яркость экрана, вручную всё меняется. И вот что я понял.
После загрузки ноута
[root@nout digger]# systemctl
● systemd-backlight@backlight:amdgpu_bl0.service                loaded failed failed
Что-то явно не так...
journalctl -eu systemd-backlight@backlight:amdgpu_bl0.service
-- Reboot --
окт 16 09:41:53 nout systemd[1]: Starting Load/Save Screen Backlight Brightness of backlight:amdgpu_bl0...
окт 16 09:41:53 nout systemd-backlight[368]: amdgpu_bl0: Failed to write system 'brightness' attribute: No such device or address
окт 16 09:41:53 nout systemd[1]: systemd-backlight@backlight:amdgpu_bl0.service: Main process exited, code=exited, status=1/FAILURE
окт 16 09:41:53 nout systemd[1]: systemd-backlight@backlight:amdgpu_bl0.service: Failed with result 'exit-code'.
окт 16 09:41:53 nout systemd[1]: Failed to start Load/Save Screen Backlight Brightness of backlight:amdgpu_bl0.
Но!
[root@nout digger]# systemctl start systemd-backlight@backlight:amdgpu_bl0.service
Меняется яркость экрана, и...
[root@nout digger]# systemctl
systemd-backlight@backlight:amdgpu_bl0.service                                              loaded active exited

Я понял это так. Демонический, адский демон почему-то не может найти устройство (ШИМ, или что там) и пишет ошибку. Позже это устройство появляется, по этому вручную демон стартует...
[root@nout digger]# ls /sys/class/backlight/
amdgpu_bl0

Блин, неудобно-то как...
Амд ....

https://gitlab.freedesktop.org/drm/amd/-/issues/1242

Оредактировать /usr/lib/systemd/system/systemd-backlight@имя.service и добавить

Restart=on-failure
RestartSec=5s
Можно еще попробовать
acpi_backlight=video в параметры ядра
задержку надо выставить на старт демона
Дописал
Restart=on-failure
RestartSec=5s
В логах видно, что сначала ошибка, затем нормальный старт, но яркость не сохраняется.

Сделал отложенный старт, демон стартует без ошибок, яркость не сохраняется.

Скорее всего глюк какой-то с амд или что-то подобное.

echo '255' > /sys/class/backlight/amdgpu_bl0/brightness выставляет максимальную яркость. В принципе меня это устроит. Сделал правило UDEV, замаскировав демона
[root@nout amdgpu_bl0]# cat /etc/udev/rules.d/81-backlight.rules
SUBSYSTEM=="backlight", ACTION=="add", KERNEL=="amdgpu_bl0", ATTR{brightness}="255"

Не работает...
БЛДТ UDEV заработал...
DarkDigger
Не работает…
Это проблема AMD - обсуждалось на BBS, там же приведено 3 решения
- откат
- редактирование сервиса, согласно рекомендаций Wiki
- kernel parameter acpi_backlight=video, как предлагал vs220, но там есть нюансы
И готовится патч - ссылка в топике BBS ...

PS - в части редактирования сервисов - рекомендуется не редактировать системные service file, а лучше создать пользователький service file, скопировав системный из /usr/lib/systemd/system/<name.service> в каталог /etc/systemd/system и отредактировать его как нужно …. и после # systemctl daemon-reload + # systemctl restart <name.service>
Пользователький service file имеет приоритет над системным
Ошибки не исчезают с опытом - они просто умнеют
vasek
в части редактирования сервисов
Можно ещё проще:
# systemctl edit <unit>
A.T.W.A.
Можно ещё проще:
можно, но конкретно имел в виду то, что лучше для этого создать свой сервис (в директории /etc/systemd/system) и править его, а не тот, что расположен в директории /usr/lib/systemd/system

Хочу отметить, что использовав термин пользовательский выразился не удачно (под пользовательским имел ввиду то, что создал его сам) … если быть точным, то системные сервисы могут размещаться в следующих директориях (уровень приоритета - чем выше по списку, тем выше приоритет)
- /etc/systemd/system
- /run/systemd/system
- /usr/lib/systemd/system
а вот чисто пользовательские сервисы имеют отношение к имени пользователя и у них другие директории.
Ошибки не исчезают с опытом - они просто умнеют
Вообще сделать легко.
При выключении прочитать /sys/class/backlight/amdgpu_bl0/brightness и записать куда-нибудь
При включении прочитать от туда и записать в /sys/class/backlight/amdgpu_bl0/brightness
Начинаю курить systemd, а то руки всё это время не доходили. В system v это я леко бы сделал..
Методом тыка узнал что сервис systemd-backlight@backlight:amdgpu_bl0.service уходит в failed только с опцией ядра quiet,
Без этой опции все нормально запускается
 
Зарегистрироваться или войдите чтобы оставить сообщение.