Backlight (Русский)
Контролировать яркость экрана может оказаться непросто. На некоторых компьютерах нет физического переключателя, а программные решения могут не работать как положено. Тем не менее, как правило, можно найти работающий способ для вашего оборудования. Цель этой статьи — обобщить все возможные способы регулировки подсветки.
Существует много способов управлять яркостью монитора, экрана ноутбука или встроенной экранной панели (как в iMac). В соответствии с этими обсуждениями[устаревшая ссылка 2024-10-12 ⓘ] и этой страницей на Ubuntu Wiki можно разделить способы управления на следующие категории:
- яркость управляется горячей клавишей, определённой производителем, и нет интерфейса для того, чтобы ОС могла настраивать яркость;
- яркость можно контролировать через ACPI, через графический драйвер или драйвер платформы. В этом случае управление подсветкой доступно пользователю через
/sys/class/backlight
, который может использоваться утилитами настройки; - яркость можно контролировать посредством аппаратного регистра с помощью setpci.
Аппаратные интерфейсы
ACPI
Яркость подсветки экрана регулируется установкой уровня питания светодиодов или катодов. Зачастую уровень питания можно контролировать с помощью ACPI модуля ядра для видео. Интерфейс к этому модулю доступен через sysfs(5) в /sys/class/backlight/
.
Имя каталога зависит от модели видеокарты.
$ ls /sys/class/backlight/
acpi_video0
В данном случае подсветкой управляет видеокарта ATI. В случае с картой Intel каталог будет называться intel_backlight
. В следующих примерах используется acpi_video0
. Если вы используете карту Intel, просто замените в примерах acpi_video0
на intel_backlight
.
Каталог содержит следующие файлы и подкаталоги:
$ ls /sys/class/backlight/acpi_video0/
actual_brightness brightness max_brightness subsystem/ uevent bl_power device/ power/ type
Максимальную яркость можно прочитать из файла max_brightness
, и она обычно равна 15.
$ cat /sys/class/backlight/acpi_video0/max_brightness
15
Яркость можно изменить путём записи числа в файл brightness
. Установить яркость выше максимальной не получится.
# echo 5 > /sys/class/backlight/acpi_video0/brightness
По умолчанию только root
может менять яркость таким способом. Чтобы управлять яркостью могли пользователи из группы video
, можно использовать правило udev (для применения может понадобиться перезагрузка):
/etc/udev/rules.d/backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video $sys$devpath/brightness", RUN+="/bin/chmod g+w $sys$devpath/brightness"
Параметры ядра
Иногда ACPI не работает должным образом из-за различных реализаций материнских плат и особенностей ACPI, что может приводить, например, к некорректным уведомлениям о яркости. Этому могут быть подвержены некоторые ноутбуки с двойной графикой (например, дискретная видеокарта NVIDIA/AMD вместе с интегрированной Intel/AMD). Кроме того, иногда для ACPI может быть необходимо зарегистрировать свою собственную подсветку acpi_video0
, даже если уже существует другая (например, intel_backlight
), что может быть достигнуто добавлением следующих параметров ядра:
acpi_backlight=video acpi_backlight=vendor acpi_backlight=native
- На ноутбуках NVIDIA Optimus параметр ядра
nomodeset
может препятствовать регулировке подсветки. - На ноутбуках Asus вам может также понадобиться загрузить модуль ядра
asus-nb-wmi
. - Отключение legacy-загрузки на Dell XPS13 приводит к невозможности изменить подсветку.
- В Linux 6.1 подсистема подсветки была переработана. Если после обновления подсветка не работает, сперва попробуйте удалить существующий параметр ядра
acpi_backlight
. На некоторых ноутбуках Optimus можно попробовать загрузиться с параметромacpi_backlight=nvidia_wmi_ec
.
Правило udev
Если доступен интерфейс ACPI, уровень подсветки может быть установлен во время загрузки с помощью правила udev:
/etc/udev/rules.d/81-backlight.rules
# Установить уровень подсветки равным 8 SUBSYSTEM=="backlight", ACTION=="add", KERNEL=="acpi_video0", ATTR{brightness}="8"
setpci
В некоторых случаях (например, Intel Mobile 945GME [1]) можно задать регистр видеокарты для регулировки подсветки. Это означает регулировку подсветки путём непосредственного манипулирования оборудованием, что может быть рискованно и, как правило, не является хорошей идеей. Не все видеокарты поддерживают этот метод.
При использовании этого метода сперва используйте lspci
, чтобы узнать, где находится ваша видеокарта.
# setpci -s 00:02.0 F4.B=0
Внешние мониторы
DDC/CI (Display Data Channel Command Interface — командный интерфейс обмена данными между компьютером и монитором) может использоваться для связи с внешними мониторами, реализующими стандарт MCCS (Monitor Control Command Set) по шине I2C.
DDC может контролировать яркость, контрастность, входы и т.д. на поддерживаемых мониторах. Настройки, доступные с панели OSD (экранное меню), также могут управляться через DDC.
Может понадобиться загрузить модуль ядра i2c-dev
, если устройства /dev/i2c-*
отсутствуют.
Для получения или изменения яркости можно использовать ddcutil:
# ddcutil capabilities | grep "Feature: 10"
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness ): current value = 60, max value = 100
# ddcutil setvcp 10 70
Также можно использовать ddcci-driver-linux-dkmsAUR для добавления внешних мониторов в sysfs. После установки этого пакета и загрузки модуля ядра ddcci
можно будет использовать любую утилиту настройки.
- Одновременное использование
ddcci
иi2c-dev
может привести к конфликтам ресурсов и появлению ошибок вродеDevice or resource busy
. - Для проприетарного драйвера NVIDIA может понадобиться добавить
Option "RegistryDwords" "RMUseSwI2c=0x01; RMI2cSpeed=100"
в секциюDevice
в настройках Xorg или параметр модуля ядраNVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100
для модуляnvidia
. [2] [3] -
ddcutil
может не работать с некоторыми возможностями VCP, если на мониторе включена функция, которая уже автоматически их настраивает (например, Dynamic Contrast Ratio или BenQ Eye Care). - Чтобы упростить настройку горячих клавиш для управления яркостью, может быть удобно предоставить доступ обычному пользователю к соответствующим устройствам I2C. Для этого создайте группу
i2c
и настройте udev на назначение этой группы устройствам I2C. [4] - Пакет ddcutil предоставляет файл
/usr/share/ddcutil/data/90-nvidia-i2c.conf
, который можно скопировать в/etc/X11/xorg.conf.d/
вместо ручной настройки Xorg. Также он предоставляет правила udev/usr/share/ddcutil/data/60-ddcutil-i2c.rules
и/usr/share/ddcutil/data/60-ddcutil-usb.rules
.
Выключение подсветки
Выключение подсветки (например, при закрытии крышки ноутбука) может быть полезно для сохранения заряда батареи. Выполните следующую команду:
$ xset dpms force off
Подсветка должна включиться снова при движении мыши или вводе с клавиатуры. Также можно использовать xset s
.
Если предыдущая команда не работает, есть шанс, что vbetool заработает. Однако имейте в виду, что в этом случае снова активировать подсветку нужно вручную. Выполните:
$ vbetool dpms off
Чтобы снова включить подсветку:
$ vbetool dpms on
Например, это можно использовать при закрытии крышки ноутбука с помощью acpid.
Сохранение и восстановление
Пакет systemd предоставляет «static» службу systemd-backlight@.service
, которая включена по умолчанию. Она сохраняет яркость подсветки во время выключения ПК и восстанавливает при включении. Эта служба использует метод ACPI, описанный в разделе #ACPI, создавая службы для каждого каталога, найденного в /sys/class/backlight/
. Например, если есть каталог acpi_video0
, она создаст службу systemd-backlight@backlight:acpi_video0.service
. Если вы используете другие методы установки яркости во время загрузки, рекомендуется отключить systemd-backlight путём добавления параметра ядра systemd.restore_state=0
. Смотрите systemd-backlight@.service(8) для более подробной информации.
systemd-backlight@backlight:acpi_video1
в случае acpi_video1
.Кроме того, утилиты brilloAUR и lightAUR поддерживают функцию сохранения и восстановления. Эти две утилиты могут быть более полезны, если вы хотите сохранять яркость для отдельных пользователей, однако для этого не предусмотрено никаких юнитов systemd.
Утилиты настройки
video
(или input
) изменять яркость.Пакет | Управление подсветкой клавиатуры | Реагирование на освещённость | Язык | Лицензия | Примечания |
---|---|---|---|---|---|
acpilight | Да | Нет | Python3 | GPL 3.0 или новее | Предоставляет исполняемый файл «xbacklight» |
backlight_controlAUR | Нет | Нет | C | MIT | Очень маленькая и простая программа. Поддерживает относительную регулировку. |
blightAUR | Да | Нет | Python3 | ISC | Использует интерфейс logind. Работает только с локальными пользователями, но не требует suid или группы video. |
brightdAUR | Нет | Нет | C | GPL 2.0 | Затемняет экран при неактивности. |
brightnessctl | Да | Нет | C | MIT | - |
brilloAUR | Да | Нет | C | GPL 3.0 | Поддерживает плавную и относительную регулировку. |
clightAUR | Да | Да | C | GPL 3.0 или новее | Управляет температурой экрана (только Xorg) и плавно снижает яркость по истечении времени. Поддержка датчиков освещённости [5]. Позволяет превратить веб-камеру в датчик освещённости. |
enlighten-gitAUR | Да | Нет | C | GPL 3.0 или новее | - |
illum-gitAUR | Нет | Нет | C | AGPL 3.0 | Реагирует на нажатие клавиш. |
lightAUR | Да | Нет | C | GPL 3.0 | Нет зависимостей. Не зависит от X-сервера. |
luxAUR | Нет | Нет | Shell | MIT | - |
macbook-lighterAUR | Да | Да | Bash | GPL | Консольный интерфейс управления подсветкой экрана/клавиатуры Macbook и автоматическая регулировка в зависимости от освещённости. |
wlr-brightness-gitAUR | Нет | Нет | C | MIT | Также поддерживает новые OLED-дисплеи, которым требуется настройка гаммы. Использует wlroots. |
wlumaAUR | Да | Да | Rust | ISC | Автоматическая регулировка яркости в зависимости от содержимого экрана и освещённости. Можно использовать веб-камеру или время для имитации датчика освещённости. Поддержка клавиатур и внешних мониторов. Использует wlroots. |
ybacklightAUR | Нет | Нет | Perl | GPL 2.0 | Небольшой Perl-скрипт, похожий на xbacklight, но использующий драйверы sysfs. |
xbacklight-notifyAUR | Нет | Нет | C | MIT | Простой демон уведомлений для X11 (считывает RandR-свойство backlight) |
acpi-backlight-notifyAUR | Нет | Нет | C | MIT | Простой демон уведомлений для интерфейса ACPI (считывает /sys/class/backlight/ )
|
XF86MonBrightnessUp
и XF86MonBrightnessDown
, как описано в разделе Горячие клавиши#Xorg.xbacklight
Яркость может быть установлена с помощью пакета xorg-xbacklight.
Чтобы установить яркость в 50% от максимальной:
$ xbacklight -set 50
Приращения могут использоваться вместо абсолютных значений, например, для увеличения или уменьшения яркости на 10%:
$ xbacklight -inc 10 $ xbacklight -dec 10
Если вы получаете ошибку «No outputs have backlight property», это потому, что xrandr/xbacklight не выбирает правильный каталог в /sys/class/backlight
. Вы можете указать каталог, задав опцию Backlight
в разделе Device
в файле /etc/X11/xorg.conf.d/20-video.conf
. Например, если имя каталога intel_backlight
и используется драйвер Intel, раздел Device
может выглядеть так:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "Backlight" "intel_backlight" EndSection
Смотрите FS#27677 и https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651741 для подробностей.
Если у вас включена функция Intel Fastboot, может возникнуть ошибка No outputs have backlight property
. В этом случае попытка применить описанный выше метод может привести к сбою Xorg при запуске. Чтобы решить проблему, Fastboot следует отключить. Известно[устаревшая ссылка 2024-10-12 ⓘ], что он вызывает проблемы с управлением яркостью.
light
Установите lightAUR и добавьте своего пользователя в группу video
.
Увеличение яркости на 5 процентов:
$ light -A 5
Уменьшение яркости на 5 процентов:
$ light -U 5
Установка яркости на 100 процентов:
$ light -S 100
Использование DBus с GNOME
Яркость также можно регулировать с помощью настроек gnome. При использовании этого метода изменения отражаются в интерфейсе gnome.
$ gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.freedesktop.DBus.Properties.Set org.gnome.SettingsDaemon.Power.Screen Brightness "<int32 50>"
Пошаговое изменение яркости (для контроля с клавиатуры) также может быть реализовано этим методом.
$ gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp $ gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown
Использование DBus с KDE
Смотрите https://userbase.kde.org/KDE_Connect/Tutorials/Useful_commands#Brightness_settings.
Цветовая коррекция
Цветокоррекция не меняет яркость подсветки, а просто меняет LUT, то есть не влияет на время работы от батареи. Тем не менее, она может быть полезна, когда управление подсветкой недоступно (на настольных ПК или ноутбуках с OLED-экранами).
- Clight — Пользовательская утилита-демон, предназначенная для полного управления вашим дисплеем. Она может управлять температурой изображения в зависимости от текущего времени суток подобно redshift. Она пытается использовать geoclue для получения местоположения пользователя, если в файле настроек не заданы широта и долгота. Она также поддерживает фиксированное время восхода и захода солнца.
- icc-brightness — Управление яркостью OLED-дисплеев путём применения цветовых профилей ICC.
- Monica — Инструмент для калибровки монитора. Работает как фронтенд к xgamma для изменения гамма-коррекции.
- https://web.archive.org/web/20090815224839/http://www.pcbypaul.com/software/monica.html || monicaAUR
- Redshift — Инструмент для настройки цветовой температуры. Регулирует цветовую температуру изображения в зависимости от окружения. Это может снизить нагрузку на глаза, если вы работаете по ночам. Вдохновлён программой f.lux.
- xcalib — Лёгкий загрузчик параметров калибровки монитора. Может загружать ICC-профиль монитора для совместного использования в настольных приложениях.
- xgamma — Настройка гамма-коррекции монитора.
Wayland
Redshift не поддерживает Wayland (но есть форк redshift-wayland-gitAUR[ссылка недействительна: package not found]). Можно применить нужную температуру в tty перед запуском композитора. Например:
$ redshift -m drm -PO 3000
Некоторые композиторы позволяют применять цветокоррекцию во время работы:
- Для GNOME можно использовать встроенный ночной свет.
- Для KDE можно использовать встроенную ночную цветовую схему.
- Для Sway и других композиторов на основе wlroots, а также для Orbital можно использовать gammastep (форк Redshift), clightAUR, wlsunset-gitAUR или wl-gammarelayAUR.
Xorg: настройка воспринимаемой яркости с помощью xrandr
Можно использовать xrandr для изменения воспринимаемой яркости.
Для установки воспринимаемой яркости выше максимального уровня (действуют вышеупомянутые предостережения для NVIDIA):
$ xrandr --output название_вывода --brightness 2
Это должно примерно вдвое увеличить яркость изображения. Это приведёт к снижению качества цвета в пользу яркости, тем не менее оно особенно подходит для ситуаций, когда окружающий свет очень яркий (например, солнечный свет).
Это также можно использовать для уменьшения воспринимаемой яркости в тёмной комнате, указав значение меньше 1 (например, 0.5). Это полезно, когда нет возможности регулировать подсветку (например, на настольном компьютере).
Определить название вывода подключенного устройства можно такой командой:
$ xrandr | grep -w connected | cut -f '1' -d ' '
Для удобства можно сделать псевдоним:
$ alias b='echo -e "Введите яркость:\n"; read val; xrandr --output название_вывода --brightness "${val}"'
Чтобы автоматически запускать xrandr при изменении файла, содержащего информацию о яркости подсветки, можно использовать oled_shmoledAUR:
$ oled_shmoled название_вывода
NVIDIA settings
Пользователи проприетарных драйверов NVIDIA могут менять яркость дисплея с помощью утилиты nvidia-settings в разделе «X Server Color Correction». Однако имейте в виду, что это не имеет ничего общего с подсветкой (Интенсивность), она всего лишь регулирует цветность. (Уменьшение яркости таким образом не является энергоэффективным. Используйте его в последнюю очередь, если все другие варианты не срабатывают; увеличение яркости портит цвета на экране полностью, по аналогии с засвеченностью фотографий.)
Решение проблем
Частота ШИМ-модуляции подсветки (только для Intel i915)
Известно, что на ноутбуках со светодиодной подсветкой иногда мерцает экран. Это объясняется тем, что наиболее эффективным способом управления яркостью подсветки светодиодов является быстрое включение и выключение светодиодов, изменяя время их свечения.
Однако частота переключения, так называемая частота ШИМ (широтно-импульсная модуляция) может быть недостаточно высокой, чтобы глаз воспринимал её как непрерывное свечение, и вместо этого видно мерцание. Это вызывает у некоторых людей такие симптомы, как головные боли и усталость глаз.
Если у вас графический адаптер Intel i915, то возможно настроить частоту ШИМ, чтобы устранить мерцание.
Период ШИМ (обратно пропорциональный частоте) записывается в 2 старших байта регистра 0xC8254
(если вы используете чипсет Intel GM45, вместо этого используйте адрес 0x61254
). Чтобы манипулировать значениями регистров, установите пакет intel-gpu-tools.
Чтобы увеличить частоту, период должен быть уменьшен. Например:
# intel_reg read 0xC8254
0xC8254 : 0x12281228
Затем, чтобы удвоить частоту ШИМ, разделите 2 старших байта (4 шестнадцатеричные цифры) на 2 и запишите полученное значение, сохраняя нижние байты неизменными:
# intel_reg write 0xC8254 0x09141228
Вы можете использовать онлайн-калькулятор для расчета желаемого значения https://devbraindom.blogspot.com/2013/03/eliminate-led-screen-flicker-with-intel.html
Чтобы установить новую частоту автоматически, попробуйте написать правило udev или установить intelpwm-udevAUR.
Инвертированная яркость (только для Intel i915)
Симптомы:
- после установки xf86-video-intel systemd-backlight.service выключает подсветку во время загрузки
- возможное решение: маскировать systemd-backlight.service
- переключение с X на другую виртуальную консоль выключает подсветку
- кнопки регулировки подсветки инвертированы (то есть увеличение яркости делает экран темнее)
Эта проблема может быть решена добавлением i915.invert_brightness=1
в список параметров ядра.
Не работает управление яркостью панели eDP (только для Intel i915)
Embedded Display Port (eDP) v1.2 добавил новый протокол управления панелью дисплея для подсветки и других элементов управления, который работает через канал AUX [7]
По умолчанию драйвер i915 пытается использовать ШИМ для управления яркостью подсветки, что может не сработать.
Чтобы менять подсветку путём записи в регистры DPCD по каналу AUX, пропишите параметр ядра i915.enable_dpcd_backlight=1
.
sysfs редактируется, но яркость не меняется
На некоторых системах клавиши изменения яркости корректно меняют значения интерфейса acpi в /sys/class/backlight/acpi_video0/actual_brightness
, но яркость экрана не изменяется. Апплеты яркости в средах рабочего стола тоже могут показывать изменения без реального влияния на яркость.
Если вы протестировали рекомендуемые параметры ядра и только xbacklight
работает, то, возможно, вы столкнулись с несовместимостью между вашим BIOS и драйвером ядра.
В этом случае единственное решение — дождаться исправления от производителя BIOS или драйвера видеокарты.
Обходной путь — использовать inotify для запуска xbacklight
после каждого изменения значения /sys/class/backlight/acpi_video0/actual_brightness
.
Сперва установите inotify-tools. Затем создайте скрипт, который будет запускаться при каждом включении с помощью автозагрузки.
/usr/local/bin/xbacklightmon
#!/bin/sh path=/sys/class/backlight/acpi_video0 luminance() { read -r level < "$path"/actual_brightness factor=$(printf "$max" | awk '{print 100/$1}') printf "$level $factor" | awk '{print int($1*$2)}' } read -r max < "$path"/max_brightness xbacklight -set "$(luminance)" inotifywait -me modify --format '' "$path"/actual_brightness | while read; do xbacklight -set "$(luminance)" done
Не работает управление подсветкой в MATE
Убедитесь, что установлен пакет mate-power-manager.
Не работают клавиши управления подсветкой в Xfce
В Xfce4 за обработку клавиш управления подсветкой отвечает Менеджер питания.
Иногда параметр «Обрабатывать кнопки яркости экрана» может оказаться отключен по умолчанию.
Чтобы включить их обработку, откройте настройки менеджера питания и включите соответствующий параметр:
$ xfce4-power-manager -c
xbacklight выдаёт: No outputs have backlight property
Иногда, в зависимости от установленной видеокарты, xbacklight из пакета xorg-xbacklight может выдать сообщение «No outputs have backlight property». Пакет acpilight предоставляет альтернативную реализацию xbacklight, которая может оказаться рабочей.
На драйвере amdgpu после перезагрузки подсветка всегда имеет максимальную яркость
Из-за бага в драйвере amdgpu значение actual_brightness
подсветки сообщается как 16-битное целое число, которое находится за пределами 8-битного диапазона, указанного в max_brightness
. Это приводит к тому, что служба systemd-backlight
при загрузке пытается установить слишком большое значение, которое в итоге уменьшается до максимальной яркости (255).
Пока баг не исправлен, одним из возможных обходных путей является преобразование сохранённой яркости в пределы правильного диапазона перед её установкой. Это можно сделать с помощью скрипта и юнита службы:
fix-brightness.sh
#!/bin/bash # Адаптируйте эту строку под ваше оборудование BRIGHTNESS_FILE="/var/lib/systemd/backlight/pci-0000:04:00.0:backlight:amdgpu_bl0" BRIGHTNESS=$(cat "$BRIGHTNESS_FILE") BRIGHTNESS=$(($BRIGHTNESS*255/65535)) BRIGHTNESS=${BRIGHTNESS/.*} # преобразование в целое число на всякий случай echo $BRIGHTNESS > "$BRIGHTNESS_FILE"
fix-brightness.service
[Unit] Description=Convert 16-bit brightness values to 8-bit before systemd-backlight applies it Before=systemd-backlight@backlight:amdgpu_bl0.service [Service] Type=oneshot ExecStart=путь/к/fix-brightness.sh [Install] WantedBy=multi-user.target
На некоторых системах уровень подсветки, о котором сообщает драйвер, находится в правильном диапазоне [0, 255], но systemd всё равно не может восстановить правильное значение. Вероятно, это связано с гонкой в ядре. В этом случае преобразование уровня яркости не поможет, так как он уже находится в правильном диапазоне. Вместо этого в качестве обходного пути можно сохранить уровень яркости в systemd перед выключением. Этого можно добиться с помощью следующего скрипта и юнита службы:
fix-brightness.sh
#!/bin/sh # Уровень подсветки с точки зрения systemd (измените при необходимости) readonly SYSTEMD_BACKLIGHT_FILE='/var/lib/systemd/backlight/pci-0000:04:00.0:backlight:amdgpu_bl0' # Уровень подсветки из драйвера AMDGPU readonly AMDGPU_BACKLIGHT_FILE='/sys/class/backlight/amdgpu_bl0/brightness' # Читаем текущее значение из драйвера и применяем его в systemd readonly AMDGPU_BACKLIGHT_VALUE=$(cat "$AMDGPU_BACKLIGHT_FILE") echo "$AMDGPU_BACKLIGHT_VALUE" > "$SYSTEMD_BACKLIGHT_FILE"
fix-brightness.service
[Unit] Description=Save brightness value from AMDGPU DefaultDependencies=no After=final.target [Service] Type=oneshot ExecStart=путь/к/fix-brightness.sh [Install] WantedBy=final.target
Сохранение яркости <5% при перезагрузке
Согласно systemd-backlight@.service(8), если свойство udev ID_BACKLIGHT_CLAMP
не установлено в false, минимальное допустимое значение сохраняемой яркости — 1 или 5% от максимальной яркости, в зависимости от того, что больше. Это ограничение будет снято, когда ядро позволит надёжно устанавливать в пользовательском пространстве значение яркости, не приводящее к выключению дисплея.
Чтобы яркость <5% сохранялась при перезагрузке, создайте правило udev:
/etc/udev/rules.d/99-backlight_clamp.rules
# Разрешить сохранять яркость <5% при перезагрузке SUBSYSTEM=="backlight", ENV{ID_BACKLIGHT_CLAMP}="0"