LINUX.ORG.RU

Опять про яркость экрана ноутбука после выключения/перезагрузки

 , ,


0

2

Приветствую.
Ноутбук Lenovo Legion 5 на AMD с nvidia 3050.
Debian 11 (Gnome) предложил (nvidia-detect) 470 драйвер. Но работал он как-то странно (на самом деле просто не выставлял атоматом 144 частоту обновления, наверное) и не работали функциональные кнопки регулировки громкости звука и яркости экрана (индикатор отображается, но ничего не меняется).
Удалил 470, установил блоб 515. И всё сразу отлично заработало, красиво, плавно, кнопки всё регулируют и т.д.
Но не запоминает яркость экрана при включении/перезагрузке. Регулирует, но не запоминает. Неудобно.
Пробовал всякие разные acpi_backlight=vendor и т.п. что в Сети нашел - не помогает. Но все эти изменения не сохранял, откатывал. И потом вдруг оп! - врезапно стал сохранять яркость.
То есть вопрос как бы закрыт, но как - непонятно.

Установил рядом еще одну полностью аналогичную систему, начал смотреть что и как - не фига не могу сделать, чтобы запоминалась яркость. Вот вроде всё одинаковое (xorg.conf, nvidia-settings.rc, параметры ядра (дефолтные), содержимое /sys/class/backlight/nvidia_0 и т.п.

То есть на одном железе две однинаковые системы с двумя одинаковыми драйверами, в одной запомниает яркость, в другой нет.
Может что-то при установке 470 подтянулось и осталось?

На что обратить внимание?


Одно из двух: или в памяти видеокарты/эффи есть какое то особое место хранения последнего значения яркости, либо нету и сохранение происходит неким скриптом/юнитом при выключении и потом запуске. В первом случае минорное обновление микропрограммы могло всё изменить, а во втором придётся построить и прочесать всю процедуру запуска системы (а в случае системд это будет очень любопытной задачкой). Действительно ли стоит ловить этого неуловимого Джо?

kirill_rrr ★★★★★
()
Ответ на: комментарий от damix9

Одинаковый дистрибутив одинаковой версии? И обновлены в обоих пакеты до последних версий?

Да. Да. С одного ванильного образа.
В «первой» системе плюс десяток прикладных приложений уже. Но они «бытовые», установлены уже после появления «запоминания» яркости.

Можно попробовать diff их /etc/.

Пробовал. Не вижу никаких явных отличий.

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

Действительно ли стоит ловить этого неуловимого Джо?

Так то нет, конечно. Но а если надо будет переустановить систему или установить кому-то на аналогичный ноут, как быть тогда?

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

обрати внимание на новый вопрос

Это о чем речь?

а лучше почитай арчвики

Ты не понял - я читал и archwiki.
И пробовал по-разному.
И не помогало, поэтому откатывал изменения.

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

Не ясна мысль, если честно.
В этом файле текущая яркость. Сейчас:

cat /sys/class/backlight/nvidia_0/brightness
85

И в нем всё верно меняется при регулировке хоть кнопками, хоть из-под Gnome. Но если перезагрузить - опять 100.
А на соседней идентичной системе убрал на 85, перезагружаешься и получаешь те же 85.

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

или в памяти видеокарты/эффи есть какое то особое место хранения последнего значения яркости

Железо умеет само запоминать яркость после отключения питания? Как это гуглится?

damix9 ★★★
()
Ответ на: комментарий от damix9

Ну может запостить неявные отличия?

/etc - система, где настройки не сохраняются
/media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc - настройки сохраняются

sudo diff -qBr /etc /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc

Только в /etc: adjtime
Только в /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/apt/apt.conf.d: 99synaptic
Только в /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/apt: trusted.gpg
Только в /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc: bash_completion.d
Файлы /etc/console-setup/cached_UTF-8_del.kmap.gz и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/console-setup/cached_UTF-8_del.kmap.gz различаются
Файлы /etc/cups/subscriptions.conf и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/cups/subscriptions.conf различаются
Файлы /etc/cups/subscriptions.conf.O и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/cups/subscriptions.conf.O различаются
Файлы /etc/default/keyboard и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/default/keyboard различаются
Только в /etc/dkms: template-dkms-mkdsc
Файлы /etc/environment и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/environment различаются
Файлы /etc/fstab и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/fstab различаются
Файлы /etc/group и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/group различаются
Файлы /etc/group- и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/group- различаются
Файлы /etc/gshadow и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/gshadow различаются
Файлы /etc/gshadow- и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/gshadow- различаются
Только в /etc: hdparm.conf
Файлы /etc/hostname и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/hostname различаются
Файлы /etc/hosts и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/hosts различаются
Файлы /etc/initramfs-tools/conf.d/resume и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/initramfs-tools/conf.d/resume различаются
Файлы /etc/ld.so.cache и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/ld.so.cache различаются
Только в /etc/ld.so.conf.d: zz_i386-biarch-compat.conf
Только в /etc/ld.so.conf.d: zz_x32-biarch-compat.conf
Только в /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/logrotate.d: sgfxi
Файлы /etc/machine-id и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/machine-id различаются
Файлы /etc/mailcap и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/mailcap различаются
Только в /etc/network/if-pre-up.d: ethtool
Только в /etc/network/if-up.d: ethtool
Файлы /etc/NetworkManager/system-connections/Wired connection 1 и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/NetworkManager/system-connections/Wired connection 1 различаются
Файлы /etc/passwd и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/passwd различаются
Файлы /etc/passwd- и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/passwd- различаются
Файлы /etc/shadow и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/shadow различаются
Файлы /etc/shadow- и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/shadow- различаются
Только в /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/ssl/certs: 7908ccae.0
Только в /etc/ssl/certs: 7a436513.0
Файлы /etc/ssl/certs/ssl-cert-snakeoil.pem и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/ssl/certs/ssl-cert-snakeoil.pem различаются
Файлы /etc/ssl/private/ssl-cert-snakeoil.key и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/ssl/private/ssl-cert-snakeoil.key различаются
Файлы /etc/sudoers и /media/user/52cf8910-52aa-4a3e-ba9d-12754a0cf647/etc/sudoers различаются
mexx
() автор топика
Ответ на: комментарий от raspopov

Я бы проверил (после прочтения ArchWiki)

Проверял, идентично всё.

systemctl status systemd-backlight@backlight:acpi_video0.service
● systemd-backlight@backlight:acpi_video0.service - Load/Save Screen Backlight Brightness of backlight:acpi_video0
     Loaded: loaded (/lib/systemd/system/systemd-backlight@.service; static)
     Active: active (exited) since Sat 2022-07-30 17:08:20 MSK; 16min ago
       Docs: man:systemd-backlight@.service(8)
    Process: 709 ExecStart=/lib/systemd/systemd-backlight load backlight:acpi_video0 (code=exited, status=0/SUCCESS)
   Main PID: 709 (code=exited, status=0/SUCCESS)
        CPU: 3ms

systemctl status systemd-backlight@backlight:nvidia_0.service
● systemd-backlight@backlight:nvidia_0.service - Load/Save Screen Backlight Brightness of backlight:nvidia_0
     Loaded: loaded (/lib/systemd/system/systemd-backlight@.service; static)
     Active: active (exited) since Sat 2022-07-30 17:08:22 MSK; 19min ago
       Docs: man:systemd-backlight@.service(8)
    Process: 1124 ExecStart=/lib/systemd/systemd-backlight load backlight:nvidia_0 (code=exited, status=0/SUCCESS)
   Main PID: 1124 (code=exited, status=0/SUCCESS)
        CPU: 3ms
mexx
() автор топика
Ответ на: комментарий от damix9

У ноутбука обычно не бывает отключения питания, так что почему бы и нет. На однои из моих ноутов яркость запоминалась между перезагрузками в т.ч. в биосе. И оно не гуглится, по крайней мере не в рунете точно - никому не интересны такие нюансы.

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

Проще будет методом проб и ошибок. Ну ли скостылить скрипт, который как раз и будет запоминать и восстанавливатьяркость. Или проще: я себе повесил команду выставить её при запуске на максимум (главное видеть, потом уберу).

kirill_rrr ★★★★★
()
Ответ на: комментарий от mexx

Предположу что дело в прошивке биоса/микропрограмме карты, раз уж в других местах нет отличий. У меня nvidia 9200m запоминает яркость, но пока не вытащено питание (акб уже давно мёртв). Причём в данный момент на нуво, а как было на блобе раньше и с другими ядрами - не помню.

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

Обе эти службы есть на обеих системах?

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

Эта служба использует ACPI метод, описанный в #ACPI, создавая службы для каждой папки, найденной в /sys/class/backlight/

Нет там никакого каталога acpi_video0

ls /sys/class/backlight/
nvidia_0
mexx
() автор топика
Ответ на: комментарий от kirill_rrr

Предположу что дело в прошивке биоса/микропрограмме карты

Дык карта то одна и та же )
Прямо вот не одинаковая, а просто одна и та же.

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

Если вы используете другие методы установки яркости во время загрузки, рекомендуется маскировать службу systemd-backlight@.service, чтобы сделать невозможным ее запуск.

На обеих системах идентично:

systemctl list-unit-files | grep masked
alsa-utils.service                                                        masked          enabled
cryptdisks-early.service                                                  masked          enabled
cryptdisks.service                                                        masked          enabled
hwclock.service                                                           masked          enabled
pulseaudio-enable-autospawn.service                                       masked          enabled
rc.service                                                                masked          enabled
rcS.service                                                               masked          enabled
saned.service                                                             masked          enabled
sudo.service                                                              masked          enabled
x11-common.service                                                        masked          enabled
mexx
() автор топика
Ответ на: комментарий от mexx

Нет. Это на каждой системе две службы.

Вероятно такого быть не должно, иначе получится, что настройки загружаются и сохраняются дважды. Вы читали про это в предложенном ArchWiki?

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

Вероятно такого быть не должно

Вероятно. Но куда тогда деть «правильную» систему, где всё точно так же и работает?

Вы читали про это в предложенном ArchWiki?

Ну конечно я читал archwiki. Они предлагают маскировать юнит.
Поэтому и привел выше grep masked.
На «правильной» системе аналогично. И работает.

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

Возможно, ситуация гонки. Как вариант - на нерабочей системе выключить службу, которая не нужна (как я понимаю systemd-backlight@backlight:acpi_video0.service) и посмотреть, что будет.

А вообще это блоб со всеми вытекающими. В нем баги скорее правило, чем исключение. У него и со звуком по HDMI проблемы и с обновлением ядра ... Лучше нуво использовать. И понять причины проблем с блобом мы не можем, потому что его исходники не видел никто, кроме разработчиков.

damix9 ★★★
()
Ответ на: комментарий от mexx

Ну конечно я читал archwiki. Они предлагают маскировать юнит.

Я не вижу, чтобы у вас один из двух вариантов был замаскирован (т.е. задизейблен через /dev/null, что запрещает даже ручное включение) или просто задизейблен.

raspopov
()
Ответ на: комментарий от mexx

У меня предположение, что на разных системах одни и те же действия выполняются в разном порядке, в разных потоках, и результат зависит от того, кто раньше.

https://en.wikipedia.org/wiki/Race_condition

damix9 ★★★
()
Ответ на: комментарий от mexx

На проблемной системе удалось сделать запоминание яркости.
Связано все же с systemd, как archwiki говорит. Но чтобы ответить точно, надо установить тестовую систему и еще раз точно посмотреть. На днях.

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

Сделать сделал, но как это работает - не понимаю.
Ставим систему Debian 11.
Ставим 515 блоб nvidia.
Всё будет работать, кроме запоминания яркости.
Получим:

systemctl status systemd-backlight@backlight:acpi_video0.service
● systemd-backlight@backlight:acpi_video0.service - Load/Save Screen Backlight Brightness of backlight:acpi_video0
     Loaded: loaded (/lib/systemd/system/systemd-backlight@.service; static)
     Active: active (exited) since Wed 2022-08-03 13:40:52 MSK; 7min ago
       Docs: man:systemd-backlight@.service(8)
    Process: 631 ExecStart=/lib/systemd/systemd-backlight load backlight:acpi_video0 (code=exited, status=0/SUCCESS)
   Main PID: 631 (code=exited, status=0/SUCCESS)
        CPU: 2ms

авг 03 13:40:52 book systemd[1]: Starting Load/Save Screen Backlight Brightness of backlight:acpi_video0...
авг 03 13:40:52 book systemd[1]: Finished Load/Save Screen Backlight Brightness of backlight:acpi_video0.

systemctl status systemd-backlight@backlight:nvidia_0.service
● systemd-backlight@backlight:nvidia_0.service - Load/Save Screen Backlight Brightness of backlight:nvidia_0
     Loaded: loaded (/lib/systemd/system/systemd-backlight@.service; static)
     Active: active (exited) since Wed 2022-08-03 13:40:53 MSK; 7min ago
       Docs: man:systemd-backlight@.service(8)
    Process: 1059 ExecStart=/lib/systemd/systemd-backlight load backlight:nvidia_0 (code=exited, status=0/SUCCESS)
   Main PID: 1059 (code=exited, status=0/SUCCESS)
        CPU: 3ms

авг 03 13:40:53 book systemd[1]: Starting Load/Save Screen Backlight Brightness of backlight:nvidia_0...
авг 03 13:40:53 book systemd[1]: Finished Load/Save Screen Backlight Brightness of backlight:nvidia_0.

Маскируем systemd-backlight@backlight:acpi_video0.service
Перезагружаемся - яркость не запоминает.
Размаскируем этот сервис.

Маскируем systemd-backlight@backlight:nvidia_0.service
Перезагружаемся - яркость не запоминает.
Размаскируем этот сервис.

Перезагружаемся - и вот теперь яркость будет запоминаться.

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

Возможно, достаточно выполнить эту процедуру mask/unmask только для systemd-backlight@backlight:nvidia_0.service
Но так не проверял.

Если маскировать сам systemd-backlight@.service, то регулировка яркости вообще перестает работать.

mexx
() автор топика