LINUX.ORG.RU

Backlight проблемы

 ,


0

0

Столкнулся сразу с несколькими вроде не критичными, но раздражающими проблемами связанными с управлением подстветкой. Подозреваю, что причина у данных проблем одна и она счас сидит пишет это сообщение, потому опишу всё в одной теме.

Действие происходит на Thinkpad X201 с Arch Linux, в GRUB прописано acpi_backlight=vendor.

1. При подключении/отключении кабеля питания, яркость каждый раз сбрасывается на 65%. Где это может устанавливаться? В udev правил не настроено, acpid отключён. В journalctl ничего, udevadm monitor показывает только собственно записи о подключении кабеля, типа таких:

KERNEL[1269.498720] change   /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:09/PNP0C09:00/PNP0C0A:00/power_supply/BAT0 (power_supply)
UDEV  [1269.500291] change   /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:09/PNP0C09:00/PNP0C0A:00/power_supply/BAT0 (power_supply)
KERNEL[1269.986003] change   /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:09/PNP0C09:00/ACPI0003:00/power_supply/AC (power_supply)
UDEV  [1269.988092] change   /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:09/PNP0C09:00/ACPI0003:00/power_supply/AC (power_supply)
Я в итоге, устав бороться с этим, добавил в udev свои правила, чтоб ставили 40% при подключении питания и 30% при переходе на батарею. Но в результате экран теперь «мигает» при переходе, сначала увеличивая яркость на 65%, а потом сразу понижая до нужных 30/40%. Несколько раздражает, потому хотел бы всё таки отключить это правило, которое устанавливает 65%.

2. При этом заметил, что udev-правила не подтягиваются сразу при включении системы. То есть если в первые минуты работы ноутбука, к нему подключить питание, экран всё равно засетится в 65%. И только через какое-то время будет сбрасываться в 40%. В journalctl -xef увидел следующее касательно systemd-udevd:

Jan 11 13:19:35 miminote systemd-udevd[311]: AC: Worker [313] processing SEQNUM=2304 is taking a long time
Jan 11 13:19:35 miminote systemd-udevd[313]: Spawned process '/usr/bin/xbacklight -set 40' [352] is taking longer than 59s to complete
сразу после запуска системы. И вот что появляется в момент, когда всё начинает работать нормально:
Jan 11 13:21:35 miminote systemd-udevd[313]: Spawned process '/usr/bin/xbacklight -set 40' [352] timed out after 2min 59s, killing
Jan 11 13:21:35 miminote systemd-udevd[311]: AC: Worker [313] processing SEQNUM=2304 killed
Jan 11 13:21:35 miminote systemd-udevd[311]: Worker [313] terminated by signal 9 (KILL)
Jan 11 13:21:35 miminote systemd-udevd[311]: AC: Worker [313] failed
Почему выполнение команды так залипает?

3. Нажатие кнопок яркости (Fn + Home/End) генерируют сразу 2 нажатия XF86MonBrightnessUp и XF86MonBrightnessDown соответственно. Если запустить acpid и посмотреть acpi_listen, это будет выглядеть вот так примерно:

video/brightnessup BRTUP 00000086 00000000 K
video/brightnessup BRTUP 00000086 00000000

video/brightnessdown BRTDN 00000087 00000000 K
video/brightnessdown BRTDN 00000087 00000000
При этом с остальными клавишами всё окей. Что тоже интересно, когда я биндил кнопки через xbindkeys - нажатие срабатывало один раз и всё было норм. Сейчас же выключил xbindkeys и решил перенести обработку клавиш на менеджер, чтоб при этом выводить сообщение о текущей яркости и в результате вижу как оно срабатывает дважды. Я догадываюсь (и на это же намекает xev), что какая-то программа отлавливает нажатие и генерит такое же, но не могу найти какая.

Надеюсь на помощь ЛОРа

Простой совет - попробовать дистрибутив, где нет системд. Обычно его проще выкинуть, чем настроить если настройки от Ленарта не подходят.

Альтернатива: найти и обнулить все правила, касающиеся подсветки во всех компонентах, которые хотят ей управлять.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

найти все правила
во всех компонентах, которые хотят ей управлять

Ну вот где-то примерно за этим я и обратился, хех. Потому как моих догадок хватило только на /etc/udev/. То же и касательно генерации кнопок.

Reineke
() автор топика
Ответ на: комментарий от Reineke

На ЛОРе я видел только одного человека, который хорошо разбирается в системд. А из моего общения с ним - ты никогда не можешь быть уверен, что это было всё.

kirill_rrr ★★★★★
()
3 марта 2019 г.

Короче, с проблемой разобрался. Понекропощу на случай, если кто-то с похожей проблемой когда-то найдёт этот тред. Проблема, как оказалось была в acpi_backlight=vendor. Из-за него в /sys/class/backlight появлялось сразу 2 директории: thinkpad_backlight и intel_backlight. Соответственно системд генерила сразу 2 демона для контроля за яркостью экрана, которые между собой конфликтовали. При замене на acpi_backlight=native остался только /sys/class/backlight и настала полная гармония и радость :3 Подсветка больше не сбрасывается, нажатия не дублируются.

Reineke
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.