Backlight control что это
Контролировать яркость экрана бывает непросто. На многих компьютерах нет физического переключателя, а вместо него используются программные решения, которые не всегда работают как положено. Однако, чаще всего это возможно. Найдите работающий способ для вашего оборудования. Слишком яркие экраны могут привести к потере зрения!
Существует много способов регулировать яркость подсветки монитора, экрана ноутбука или встроенной экранной панели (как в iMac) с помощью программного обеспечения, но в зависимости от оборудования и модели иногда доступны не все варианты. В данной статье предпринимается попытка обобщить все возможные пути регулирования яркости подсветки экрана.
Выключение подсветки
Выключение подсветки (например, при закрытии крышки ноутбука) может быть полезно для сохранения заряда батареи. Выполните следующую команду:
Подсветка должна включиться снова при движении мыши или вводе с клавиатуры. Если предыдущая команда не работает, есть шанс, что vbetool заработает. Отметьте, однако, что в этом случае подсветка должна быть вручную активирована снова. Выполните:
Чтобы снова включить подсветку:
Например, это можно использовать при закрытии крышки ноутбука с помощью Acpid.
Switch off the backlight
This article or section is a candidate for merging with DPMS.
Switching off the backlight (for example when one locks a notebook) can be useful to conserve battery energy. Ideally the following command should work for any Xorg graphical session:
The backlight should switch on again on mouse movement or keyboard input. Alternately, xset s could be used for a similar effect.
If the previous commands do not work, there is a chance that vbetool may work. Note, however, that in this case the backlight must be manually activated again. The command is as follows:
To activate the backlight again:
For example, this can be put to use when closing the notebook lid using acpid.
BackLight для телевизора, на этот раз с управлением от пульта
Есть много статьей на тему самодельной BackLight подсветки, но все эти приспособления либо зависимы от компьютера, либо горят постоянно. Я поставил для себя цель сделать BackLight для телевизора, которую бы можно было выключать и включать с пульта (не вставая с кровати), при этом не нарушая целостности самого телевизора.
Первой моей идей было завести отдельный пульт для розетки телевизора, и для этих целей я даже заказа вот штуку у наших друзей китайцев.
Однако появление еще одного пульта не нужно. И пока посылка добиралась, я стал думать дальше, и вспомнил что в телеке у меня есть usb которым я не пользуюсь но который должен давать 5v. Убедившись что питание на usb пропадает когда телевизор переходит в STANDBY я был рад, что наконец то нашел изящное решение.
Итак мне потребовалось: реле срабатывающее от 5v, у себя дома я нашел вот такое:
Для света я хотел взять дюралайт, но в магазине передумал и взял LED ленту:
И к ней блок питания:
Дальше на скрутках, изоленте и скотче я собрал модуль управления от usb (слабонервных просьба отойти от экранов):
Осталось смонтировать все это на телевизор:
Подключаем USB разъем:
И готово, backlight с включением/отключением от пульта телевизора:
Ночной режим:
Можно выключить совсем, просто выдернув usb:
Остался вопрос, который я бы хотел задать гуру-паяльника, я не пользуюсь usb, совсем, но все же, есть ли вероятность спалить таким образом порт? =)
Служба systemd-backlight
Некоторые ноутбуки имеют несколько видеоадаптеров (как Optimus) и восстановление подсветки не выполняется в следствие ошибок. Попробуйте маскировать instance этой службы, например systemd-backlight@backlight\:acpi_video1 в случае acpi_video1 .
Из man-страницы [email protected]:
systemd-backlight принимает следующий параметр командной строки:
Принимает логическое значение. По умолчанию "1".
Если "0", не восстанавливает настройки яркости во время загрузки. Однако, настройки будут всё равно сохраняться при выключении.
Цветовая коррекция
xcalib
Примечание: xcalib не меняет силу подсветки, а просто модифицирует LUT-таблицу: это означает, что время работы от батареи не изменится. Однако, это может быть полезно, когда регулировка подсветки недоступна (настольные ПК). Используйте xcalib -clear , чтобы сбросить LUT.Пакет xcalib (upstream URL) доступен в AUR и может использоваться, чтобы уменьшить яркость экрана. Видео-демонстрация доступна на YouTube. Эта программа может корректировать гамму, инвертировать цвета и уменьшать контраст. Например, чтобы уменьшить яркость посредством изменения контраста:
Эта программа использует технологию ICC для взаимодействия с X11, и пока экран затенен, вы можете обнаружить, что курсор мыши так же ярок, как и раньше.
Xflux
Xflux это порт f.lux для системы X-Windows. Он меняет оттенок экрана между синим в течение дня и желтым или оранжевым ночью. Это помогает вам адаптироваться к времени суток и перестать поздно ложиться спать из-за вашего яркого монитора.
В AUR существуют различные пакеты, которые используют f.lux.[5] "Основной" пакет - xflux AUR , который охватывает функционал командной строки f.lux. Существуют различные демоны для автоматического запуска пакета xflux.
redshift
Redshift использует randr , чтобы настроить яркость экрана в зависимости от времени суток и вашего географического положения. Она также может выполнять RGB гамма-коррекцию и задавать цветовые температуры. Как и xcalib , это лишь программное решение, и внешний вид курсора мыши не изменяется. Чтобы выполнить быструю настройку яркости, попробуйте что-то вроде этого:
Совет: Если ваша долгота западная или широта южная, вы должны ввести ее как отрицательную. Пример для Berkeley, CA:NVIDIA settings
Пользователи несвободных драйверов NVIDIA могут менять яркость дисплея с помощью утилиты nvidia-settings в разделе "X Server Color Correction". Однако, заметьте, что это не имеет ничего общего с подсветкой (Интенсивность), она всего лишь регулирует цветность. (Уменьшение яркости таким образом не является энергоэффективным. Используйте его в последнюю очередь, если все другие варианты не срабатывают; увеличение яркости портит цвета на экране полностью, по аналогии с засвеченностью фотографий.)
Увеличение яркости выше максимального уровня
Вы можете испльзовать xrandr для увеличения яркости выше максимального уровня:
Это установит уровень яркости на 200%. Это приведёт к повышению энергопотребления и снижению качества цвета в пользу яркости, тем не менее оно особенно подходит для ситуаций, когда окружающий свет очень яркий (например, солнечный свет).
Утилиты настройки
xbacklight
Яркость может быть установлена с помощью пакета xorg-xbacklight .
- xbacklight работает только с intel. Radeon не поддерживает свойство подсветки RandR.
- xbacklight в настоящий момент не работает с modesetting-драйвером [3].
Чтобы установить яркость в 50% от максимальной:
Приращения могут использоваться вместо абсолютных значений, например, для увеличения или уменьшения яркости на 10%:
Гамма может быть установлена с использованием пакета xorg-xrandr или xorg-xgamma . Следующие команды создают одинаковый эффект.
Совет: Эти команды могут быть привязаны к клавишам клавиатуры, как описано в Extra keyboard keys in Xorg.Если вы сталкиваетесь с ошибкой "No outputs have backlight property", это потому, что xrandr/xbacklight не выбирает правильную папку в /sys/class/backlight . Вы можете указать папку, настроив опцию Backlight в device-разделе файла xorg.conf. К примеру, если имя папки intel_backlight , раздел device может быть настроен следующим образом:
Другие утилиты
setpci
Для настройки подсветки можно установить регистр видеокарты. Это означает, что вы настраиваете подсветку, напрямую манипулируя оборудованием, что может быть рискованным и, как правило, не является хорошей идеей. Этот метод поддерживается не всеми графическими картами.
Используя этот метод, вам сначала нужно использовать lspci чтобы найти ваш графический адаптер.
Использование DBus с Gnome
Яркость также можно регулировать с помощью настроек gnome. При использовании этого метода изменения отражаются в интерфейсе gnome.
Пошаговое изменение яркости (для контроля с клавиатуры) также может быть реализовано этим методом.
Contents
Управление яркостью подсветки 7-ми дюймового TFT LCD
В настоящее время я занимаюсь проектом на Arduino с использованием TFT дисплея. Недавно мне захотелось добавить в него, казалось бы, простую функцию — функцию регулировки яркости. Нашёл в документации к библиотеке для работы с TFT дисплеем (UTFT Library) нужный метод: setBrightness(br);
Написал весь код, сделал все, как надо. Решил проверить, но, к моему удивлению, ничего не происходило. Начал разбираться. Спустя два дня, заметил небольшое примечание к методу: "This function is currently only supported on CPLD-based displays." То есть, данная библиотека, не поддерживает мой дисплей. Но я узнал, что сам дисплей регулировку яркости поддерживает. Очень долго искал в интернете способы настройки, но так и не нашёл, поэтому решил добиться своей цели сам, несмотря ни на что, и у меня это получилось. И вот решил поделиться с теми, кому это может пригодиться.
Что нам понадобится?
- В качестве основы, я использовал Frearduino ADK v.2.2 на базе процессора ATmega2560
- TFT LCD Mega Shield v.2.2
- Сам дисплей — 7" TFT LCD SSD1963 (Тут вы найдёте его описание, а так же необходимую документацию)
- UTFT Library — универсальная библиотека для работы с TFT дисплеями (Найти саму библиотеку, а так же документацию можно тут)
- Паяльник
Разберёмся с железом
Открыв схему дисплея, можно увидеть, что на конвертер mp3032 идет три входа: LED-A, PWM, 5V. Изначально, PWM неактивен. Этот вход не используется совсем. Подсветка управляется LED-A.
Если взглянуть на обратную сторону дисплея, можно найти область, подписанную как "Backlight control" . Здесь то мы и найдём эти самые входы. Для управления подсветкой методом ШИМ, необходимо сделать так, чтобы все было наоборот: LED-A — неактивен, PWM — активен. Для этого придётся перепаять перемычку. Вот фото того, что должно получиться:
Программная часть
Так как наша библиотека не может дать то, что нам надо, мы сами напишем нужную функцию. Для этого откроем документацию к контроллеру, управляющему дисплеем (SSD1963). Управление SSD1963 осуществляется с помощью специальных команд, которые передаются с Arduino через специальные выходы, которые описаны в документации:
Управление осуществляется следующим образом: Arduino выводит через RS (D/C в таблице) 0, если мы собираемся передавать команду, 1 — если данные. После передачи команды, RS переключается на 1, и далее передаются необходимые параметры. Все команды и параметры передаются через выходы D0-D7. Если у вас ATmega2560, то все эти восемь выходов объединены в порт C.
Итак, для начала, напишем функцию передачи данных по шине. Для удобства использования, я буду писать прямо в UTFT.h:
Также стоит обратить внимание на названия методов, так как в библиотеке уже могут встретиться функции с такими же именами.
Добавим две функции для вывода команд и данных:
Теперь сама настройка подсветки. Чтобы узнать, как осуществить все это, открываем документацию и ищем команду для настройки PWM.
Примечание:
PWM может управляться, с помощью DBC — система динамической регулировки яркости, но я, для простоты, не стал её использовать. Вы же, если хотите, можете найти необходимую информацию в той же документации.
Итак, вот, что нам надо:
То есть, сначала мы должны передать команду «0xBE», а потом, в качестве 3-х параметров передать частоту сигнала, длительность рабочего цикла, а также третий параметр, который определяет, включен DBC или нет (0x01 — выключен, 0x09 — включен).
Hardware interfaces
The brightness of the screen backlight is adjusted by setting the power level of the backlight LEDs or cathodes. The power level can often be controlled using the ACPI kernel module for video. An interface to this module is provided via a sysfs(5) directory at /sys/class/backlight/ .
The name of the directory depends on the graphics card model.
In this case, the backlight is managed by an ATI graphics card. In the case of an Intel card, the directory is called intel_backlight . In the following examples, acpi_video0 is used. If you use an Intel card, simply replace acpi_video0 with intel_backlight in the examples.
The directory contains the following files and subdirectories:
The maximum brightness can be displayed by reading from max_brightness , which is often 15.
The brightness can be set by writing a number to brightness . Attempting to set a brightness greater than the maximum results in an error.
By default, only root can change the brightness by this method. To allow users in the video group to change the brightness, a udev rule such as the following can be used:
The factual accuracy of this article or section is disputed.
Reason: Explain why the former rule does not work for intel_backlight . (Discuss in Talk:Backlight)For intel_backlight , use the following udev rule:
Kernel command-line options
Sometimes ACPI does not work well due to different motherboard implementations and ACPI quirks. This results in, for instance, inaccurate brightness notifications. This includes some laptops with dual graphics (e.g., Nvidia/Radeon dedicated GPU with Intel/AMD integrated GPU). Additionally, ACPI sometimes needs to register its own acpi_video0 backlight even if one already exists (such as intel_backlight ), which can be done by adding one of the following kernel parameters:
If you find that changing the acpi_video0 backlight does not actually change the brightness, you may need to use acpi_backlight=none .
- On Nvidia Optimus laptops, the kernel parameter nomodeset can interfere with the ability to adjust the backlight.
- On an Asus notebooks you might also need to load the asus-nb-wmi kernel module.
- Disabling legacy boot on Dell XPS13 breaks backlight support.
Udev rule
If the ACPI interface is available, the backlight level can be set at boot using a udev rule:
setpci
In some cases (e.g. Intel Mobile 945GME [1]), it is possible to set the register of the graphic card to adjust the backlight. It means you adjust the backlight by manipulating the hardware directly, which can be risky and generally is not a good idea. Not all of the graphic cards support this method.
When using this method, you need to use lspci first to find out where your graphic card is.
External monitors
DDC/CI (Display Data Channel Command Interface) can be used to communicate with external monitors implementing MCCS (Monitor Control Command Set) over I2C. DDC can control brightness, contrast, inputs, etc on supported monitors. Settings available via the OSD (On-Screen Display) panel can usually also be managed via DDC. The kernel module i2c-dev may need to be loaded if the /dev/i2c-* devices do not exist.
ddcutil can be used to query and set brightness settings:
Alternatively, one may use ddcci-driver-linux-dkms AUR to expose external monitors in sysfs. Then, after loading the ddcci kernel module, one can use any backlight utility.
- Using ddcci and i2c-dev simultaneously may result in resource conflicts such as a Device or resource busy error.
- ddcutil will fail to set some VCP features if there is a feature enabled on the monitor which already automatically adjusts them (e.g. Dynamic Contrast Ratio or BenQ's Eye Care technology).
- To facilitate binding screen brightness control to a keyboard shortcut, it may be convenient to enable non-superuser access to the relevant I2C devices. This can be achieved by adding a group "i2c" and configuring udev to set this group as the owner of the i2c devices. See this answer.
Color correction
This article or section needs expansion.
Reason: Which utilities require Xorg and which work in Wayland? (Discuss in Talk:Backlight)Color correction does not change the backlight power, it just modifies the video lookup table: this means that your battery life will be unaffected by the change. Nevertheless, it could be useful when no backlight control is available (desktop PCs or laptops with OLED screens).
Wayland
Redshift does not support Wayland (without a patch). But it is possible to apply the desired temperature in tty before starting a compositor. For example:
Otherwise some compositors can apply color correction during runtime:
Xorg: adjust perceived brightness with xrandr
xrandr may be used to adjust the perceived brightness.
To adjust perceived brightness above its maximum level (the same caveats mentioned above for Nvidia apply):
This should roughly double luma in the image. It will sacrifice color quality for brightness, nevertheless it is particularly suited for situations where the ambient light is very bright (e.g. sunlight).
This can also be used to reduce perceived brightness in a dark room by specifying some value less than 1 (e.g. 0.5), this is useful when no backlight control is available (e.g. desktop PC).
The output name of the connected device may be determined by calling xrandr :
Users may find it convenient to implement this as an alias:
To automatically call xrandr when a backlight file changes, oled_shmoled AUR can be used like so:
NVIDIA settings
Users of NVIDIA's proprietary drivers can change display brightness via the nvidia-settings utility under "X Server Color Correction." However, note that this has absolutely nothing to do with backlight (intensity), it merely adjusts the color output. (Reducing brightness this way is a power-inefficient last resort when all other options fail; increasing brightness spoils your color output completely, in a way similar to overexposed photos.)
Обзор
Существует несколько способов контролировать яркость. В соответствии с этим обуждением [1] и этой wiki страницей [2], способы контроля делятся на следующие категории:
- яркость управляется горячей клавишей, определённой производителем, и нет интерфейса для того, чтобы ОС могла настраивать яркость.
- яркость можно контролировать через ACPI или через графический драйвер.
- яркость можно контролировать посредством аппаратного регистра с помощью setpci.
Все методы доступны пользователю через /sys/class/backlight и xrandr/xbacklight может выбрать один способ контролировать яркость. Пока еще не совсем понятно, который из способов xbacklight предпочитает по умолчанию.
Яркость подсветки экрана регулируется установлением уровня питания светодиодов или катодов. Уровень питания может часто контролироваться с помощью ACPI модуля ядра для видео. Интерфейс к этому модулю доступен через папку sysfs в /sys/class/backlight .
Имя папки зависит от модели видеокарты.
Именно эта подсветка - управляется видеокартой ATI. В видеокарте Intel она называется intel_backlight . В следующем примере используется acpi_video0 .
Папка содержит следующие файлы и папки:
Максимальную яркость можно прочитать из max_brightness , которая обычно равна 15.
Яркость может быть изменена, если записать число в brightness . Здесь невозможно использовать число выше максимальной яркости.
Параметры ядра
Иногда ACPI не работает должным образом из-за различных реализаций материнских плат и особенностей ACPI, что может приводить, например, к неточным оповещениям о яркости. Этому могут быть подвержены некоторые ноутбуки с двойной графикой (например, выделенный графический процессор Nvidia / Radeon с интегрированным графическим процессором Intel / AMD). Кроме того, иногда может быть необходимо зарегистрировать свою собственную подсветку acpi_video0 , даже если другая уже существует (например, intel_backlight ), что может быть достигнуто добавлением следующих параметров ядра:
Если вы обнаружите, что изменение подсветки acpi_video0 на самом деле не изменяет яркость, вам может потребоваться использовать acpi_backlight=none .
- На ноутбуках Nvidia Optimus параметра ядра nomodeset может препятствовать регулировке подсветки.
- На ноутбуках Asus вам может также понадобиться загрузить модуль ядра asus-nb-wmi .
- Отключение legacy-загрузки на Dell XPS13 приводит к невозможности изменить подсветку.
Правило Udev
Если доступен интерфейс ACPI, уровень подсветки может быть установлен во время загрузки с использованием правила udev:
Save and restore functionality
Note: Some laptops have multiple video cards (e.g. Optimus) and the backlight restoration fails. Try masking an instance of the service (e.g. systemd-backlight@backlight:acpi_video1 for acpi_video1 ).Additionally, the brillo AUR and light utilities support save and restore functionality. These two may be more useful if one wishes to restore the screen brightness on a per-user basis, however no systemd units are provided to accomplish this.
Troubleshooting
Backlight PWM modulation frequency (Intel i915 only)
Laptops with LED backlight are known to have screen flicker sometimes. This is because the most efficient way of controlling LED backlight brightness is by turning the LED's on and off very quickly varying the amount of time they are on.
However, the frequency of the switching, so-called PWM (pulse-width modulation) frequency, may not be high enough for the eye to perceive it as a single brightness and instead see flickering. This causes some people to have symptoms such as headaches and eyestrain.
If you have an Intel i915 GPU, then it may be possible to adjust PWM frequency to eliminate flicker.
Period of PWM (inverse to frequency) is stored in 2 higher bytes of 0xC8254 register (if you are using the Intel GM45 chipset use address 0x61254 instead). To manipulate registers values install intel-gpu-tools from the official repositories.
To increase the frequency, period must be reduced. For example:
Then to double PWM frequency divide 2 higher bytes (4 higher hex digits) by 2 and write back resulting value, keeping lower bytes unchanged:
To set new frequency automatically, consider writing an udev rule or install intelpwm-udev AUR .
Inverted Brightness (Intel i915 only)
- after installing xf86-video-intel systemd-backlight.service turns off the backlight during boot
- possible solution: mask systemd-backlight.service
This problem may be solved by adding i915.invert_brightness=1 to the list of kernel parameters.
Unable to control eDP Panel brightness (Intel i915 only)
Embedded Display Port (eDP) v1.2 introduced a new display panel control protocol for backlight and other controls that works through the AUX channel [4]
By default the i915 driver tries to use PWM to control backlight brightness, which might not work.
To set the backlight through writes to DPCD registers using the AUX channel set i915.enable_dpcd_backlight=1 as a kernel parameter.
Note: The parameter changed from bool to int in linux 5.4.sysfs modified but no brightness change
Note: This behavior and their workarounds have been confirmed on the Dell M6700 with Nvidia K5000m (BIOS version prior to A10) and Clevo P750ZM (Eurocom P5 Pro Extreme) with Nvidia 980m.On some systems, the brightness hotkeys on your keyboard correctly modify the values of the acpi interface in /sys/class/backlight/acpi_video0/actual_brightness but the brightness of the screen is not changed. Brightness applets from desktop environments may also show changes to no effect.
If you have tested the recommended kernel parameters and only xbacklight works, then you may be facing an incompatibility between your BIOS and kernel driver.
In this case the only solution is to wait for a fix either from the BIOS or GPU driver manufacturer.
A workaround is to use the inotify kernel api to trigger xbacklight each time the value of /sys/class/backlight/acpi_video0/actual_brightness changes.
First install inotify-tools . Then create a script around inotify that will be launched upon each boot or through autostart.
Backlight not working in MATE
Backlight keys not working in Xfce
In xfce4, the Xfce4 Power Manager handles the brightness keys.
In some installations of Xfce, the "Handle display brightness keys" setting may be turned off by default.
To activate the brightness keys again, open the Xfce Power Manager dialog and toggle on "Handle display brightness keys":
Depending on the video card installed, sometimes xbacklight from xorg-xbacklight returns the message "No outputs have backlight property". Installing acpilight provides an alternative xbacklight that may work as expected.
Backlight is always at full brightness after a reboot with amdgpu driver
While the bug is not addressed, one possible workaround is to modify the stored brightness to within the correct range before it's restored. This can be accomplished with a script and a service unit:
On certain systems, the backlight level reported by the driver is in the correct range [0, 255], but systemd still fails to restore the correct value. This is probably due to a race in the kernel. In this case, truncating the brightness level will not help since it's already in the correct range. Instead, saving the brightness level to systemd before shutting down could work as a workaround. This can be accomplished by the following script and service unit:
Внешние мониторы
DDC/CI (Командный интерфейс обмена данными между компьютером и монитором) может использоваться для связи с внешними мониторами, реализующими стандарт MCCS (Monitor Control Command Set) по шине I2C.
DDC может контролировать яркость, контрастность, входы и т.д. на поддерживаемых мониторах. Настройки, доступные с панели OSD (экранное меню), также могут управляться через DDC.
Утилита ddcutil может использоваться, чтобы вывести или поменять настройки яркости:
Backlight
Screen brightness might be tricky to control. On some machines physical hardware switches are missing and software solutions may not work well. However, it is generally possible to find a functional method for a given hardware. This article aims to summarize all possible ways to adjust the backlight.
There are many ways to control brightness of a monitor, laptop or integrated panel (such as the iMac). According to these discussions and this wiki page the control method can be divided into these categories:
- brightness is controlled by vendor-specified hotkey and there is no interface for the OS to adjust the brightness.
- brightness is controlled by either the ACPI, graphic or platform driver. In this case, backlight control is exposed to the user through /sys/class/backlight which can be used by user-space backlight utilities.
- brightness is controlled by writing into a graphic card register through setpci.
Contents
Решение проблем
Частота ШИМ-модуляции подсветки (только для Intel i915)
Известно, что на ноутбуках со светодиодной подсветкой иногда мерцает экран. Это объясняется тем, что наиболее эффективным способом управления яркостью подсветки светодиодов является быстрое включение и выключение светодиодов, изменяя время их свечения.
Однако, частота переключения, так называемая частота ШИМ (широтно-импульсная модуляция), может быть недостаточно высокой, чтобы глаз воспринимал её как непрерывное свечение, и вместо этого видно мерцание. Это вызывает у некоторых людей такие симптомы, как головные боли и усталость глаз.
Если у вас графический адаптер Intel i915, то возможно настроить частоту ШИМ, чтобы устранить мерцание.
Период ШИМ (обратно пропорциональный частоте) записывается в 4 старших байта регистра 0xC8254 (если вы используете чипсет Intel GM45, вместо этого используйте адрес 0x61254 ). Чтобы манипулировать значениями регистров, установите intel-gpu-tools из официальных репозиториев.
Чтобы увеличить частоту, период должен быть уменьшен. Например:
Затем, чтобы удвоить частоту ШИМ, разделите 4 старших байта на 2 и запишите полученное значение, сохраняя нижние байты неизменными:
Чтобы установить новую частоту автоматически, попробуйте написать правило udev или установить intelpwm-udev AUR .
Инвертированная яркость (только для Intel i915)
- после установки xf86-video-intel systemd-backlight.service выключает подсветку во время загрузки
- возможное решение: маскировать systemd-backlight.service
sysfs изменен, но нет изменения яркости
Примечание: Такое поведение и способы его обхода были подтверждены на Dell M6700 с Nvidia K5000m (версия BIOS до A10) и Clevo P750ZM (Eurocom P5 Pro Extreme) с Nvidia 980m.На некоторых системах горячие клавиши яркости на клавиатуре корректно изменяют значения интерфейса acpi в /sys/class/backlight/acpi_video0/actual_brightness , но яркость экрана не изменяется. Апплеты яркости в окружениях рабочего стола могут также показывать изменения без результатов.
Если вы протестировали рекомендуемые параметры ядра и только xbacklight работает, вы можете столкнуться с несовместимостью между вашим BIOS и драйвером ядра.
В этом случае единственное решение - дождаться исправления от производителя BIOS или драйвера GPU.
Обходной путь - использовать inotify api ядра для запуска xbacklight каждый раз, когда изменяется значение /sys/class/backlight/acpi_video0/actual_brightness .
Сперва установите inotify-tools . Затем создайте скрипт, который будет запускаться при каждом включении с помощью автозагрузки.
Backlight utilities
The utilities in the following table can be used to control screen brightness. All of them are compatible with Wayland and do not require X. Some (like brightnessctl or light ) add udev rules to allow members of the video (or input ) group to modify brightness.
xbacklight
Brightness can be set using the xorg-xbacklight package.
- xbacklight only works with Intel. Other drivers (e.g. Radeon) did not add support for the RandR backlight property.
- xbacklight currently does not work with the modesetting driver [3].
To set brightness to 50% of maximum:
Increments can be used instead of absolute values, for example to increase or decrease brightness by 10%:
If you get the "No outputs have backlight property" error, it is because xrandr/xbacklight does not choose the right directory in /sys/class/backlight . You can specify the directory by setting the Backlight option of the device section in /etc/X11/xorg.conf.d/20-video.conf . For instance, if the name of the directory is intel_backlight and using the Intel driver, the device section may be configured as follows:
If you have enabled Intel Fastboot you might also get the No outputs have backlight property error. In this case, trying the above method may cause Xorg to crash on start up. You should disable it to fix the issue. It is known to cause issues with brightness control.
Using DBus with GNOME
Brightness can also be adjusted as the GNOME controls do. Changes are reflected in the GNOME UI using this method.
Steps in brightness for keyboard control can be implemented with this method as well.
Using DBus with KDE
Читайте также: