Автор Тема: Яркость экрана  (Прочитано 592 раз)

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
Яркость экрана
« : 18.11.2021 12:39:57 »
У меня проблема с яркостью экрана ноутбука.

Во время загрузки яркость экрана соответствует той, которую видимо выдает сам ноутбук. Но потом система сама принудительно снижает яркость экрана: не очень сильно, но заметно. Использование команды xrandr --brightness со значением больше единицы -- 1.2, к примеру -- работает не корректно. Яркость экрана получается контрастной, не естественной.

Можно ли что-то сделать?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 688
  • Sunny 273 RUS crew
Re: Яркость экрана
« Ответ #1 : 18.11.2021 14:41:40 »
Кнопки управления яркостью работают? Это состояние запоминается? Вообще, конечно, это от модели бука зависит. Где-то работает, где-то можно поиграть параметрами загрузки, где-то не поможет наверное. Вот древняя тема про Acer Aspire 5733Z, к примеру.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 953
Re: Яркость экрана
« Ответ #2 : 18.11.2021 17:57:25 »
Изменение яркости дисплея через /sys

Если для подключенного устройства
$ find /sys -name max_brightness | grep card
/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/max_brightness
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/status
connected

при максимально возможном уровне яркости
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/max_brightness
937

изменение яркости поддерживается
$ ll /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness
-rw-r--r-- 1 root root 4096 ноя 18 17:32 /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness

то текущий уровень яркости
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/actual_brightness
472

можно изменить
# echo 750 > /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness
# cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/actual_brightness
750

и зафиксировать его строкой в /etc/sysfs.conf
devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness = 850
# rpm -qf /etc/sysfs.conf
sysfsutils-2.1.0-alt8.x86_64
# rpm -ql sysfsutils
/etc/rc.d/init.d/sysfs
/etc/sysfs.conf
/lib/systemd/system/sysfs.service
/usr/bin/systool
/usr/share/man/man1/systool.1.gz

Обратите внимание на формат записи в /etc/sysfs.conf:
В конфиге /etc/sysfs.conf, каталог /sys/ как начало пути к файлу brightness (rw-------  600) не прописывается.
« Последнее редактирование: 18.11.2021 19:48:41 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 953
Re: Яркость экрана
« Ответ #3 : 18.11.2021 18:26:15 »
В своей текущей конфигурации, ни Вариант I, ни Вариант II (как впрочем и Вариант V),
https://forum.altlinux.org/index.php?topic=32361.msg311778#msg311778

работать не будут.
За отсутствием свойства Backlight для устройства connected (см. вывод xrandr --prop)
И в своей текущей конфигурации, управление яркостью через /sys, существует как единственно возможное.
Если конечно не считать управление яркостью через power менеджер.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 953
Re: Яркость экрана
« Ответ #4 : 18.11.2021 19:08:20 »
Отсутствие свойства Backlight характерно для Xorg драйвера modesetting_drv. Который в альтлинукс по-умолчанию.
Но не для драйвера intel_drv:
$ xrandr --prop | grep -i backlight -A1
BACKLIGHT: 750
range: (0, 937)
Backlight: 750
range: (0, 937)

когда команды управления яркостью обрабатываются (ниже установка максимальной яркости тремя вариантами):

через xbacklight (проценты)
$ xbacklight -set 100
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/actual_brightness
937

через парсинг содержимого max_brightness
$ xbacklight -set 50
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/actual_brightness
468
$ xrandr --output \
> $(xrandr|grep ' connected '|awk '{printf $1}') \
> --set Backlight \
> $(grep . /sys/class/backlight/intel_backlight/max_brightness)
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/actual_brightness
937

через парсинг максимального уровня в range свойства Backlight
$ xbacklight -set 50
$ xrandr --output \
>  $(xrandr|grep ' connected '|awk '{printf $1}') \
>  --set Backlight \
>  $(xrandr --prop | grep Backlight -A1 | grep range | awk '{print $3}' | awk -F ')' '{print $1}')
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/actual_brightness
937