Использование софт-кнопок раздражает со временем. Я имею в виду реальную яркость подсветки (не гамма X11). Какие протоколы подходят для этого? (DVI, HDMI, DP, думаю, VGA нет)
Использование софт-кнопок раздражает со временем. Я имею в виду реальную яркость подсветки (не гамма X11). Какие протоколы подходят для этого? (DVI, HDMI, DP, думаю, VGA нет)
Ответы:
На самом деле, все эти интерфейсы способны управлять подсветкой (и не только), если видеокарта и монитор поддерживают канал данных дисплея .
DDC основан на I²C, поэтому для его работы необходимо установить и загрузить соответствующие модули ядра.
# Debian
sudo apt-get install i2c-tools
sudo modprobe i2c-dev
# RHEL
sudo dnf install i2c-tools
После этого вы должны узнать, какая шина I²C подключена к монитору с помощью sudo i2cdetect -l
.
# Example output for Intel graphics card
i2c-0 i2c i915 gmbus dpc I2C adapter
i2c-1 i2c i915 gmbus dpb I2C adapter
i2c-2 i2c i915 gmbus dpd I2C adapter
i2c-3 i2c DPDDC-B I2C adapter
i2c-4 i2c DPDDC-C I2C adapter
# Example output for AMD graphics card
i2c-0 i2c Radeon i2c bit bus 0x90 I2C adapter
i2c-1 i2c Radeon i2c bit bus 0x91 I2C adapter
i2c-2 i2c Radeon i2c bit bus 0x92 I2C adapter
i2c-3 i2c Radeon i2c bit bus 0x93 I2C adapter
i2c-4 i2c Radeon i2c bit bus 0x94 I2C adapter
i2c-5 i2c Radeon i2c bit bus 0x95 I2C adapter
i2c-6 i2c card0-eDP-1 I2C adapter
i2c-7 i2c card0-VGA-1 I2C adapter
В случае Intel правая шина - это одна из DPDDC ( Display Port DDC ), в зависимости от того, какой порт вы используете. В моем случае и HDMI, и DP отображаются как DP.
В случае AMD шина называется card0- interface - n .
Если в списке нет интерфейсов, значит, ваша карта / драйвер не поддерживает стандарт DDC.
Теперь нам нужно выяснить, поддерживает ли монитор DDC и позволяет ли он устанавливать яркость таким образом. Сначала установите ddccontrol
:
# Debian
sudo apt-get install ddccontrol
# RHEL
sudo dnf install ddccontrol
Затем список получить список поддерживаемых параметров DDC, используя его. В этом примере предполагается, что ваш интерфейс DDC связан с шиной i2c-3.
# sudo ddccontrol dev:/dev/i2c-3
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-3...
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELA0A2.xml"
Document not parsed successfully.
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELlcd.xml"
Document not parsed successfully.
EDID readings:
Plug and Play ID: DELA0A2 [VESA standard monitor]
Input type: Digital
= VESA standard monitor
> Color settings
> Brightness and Contrast
> id=brightness, name=Brightness, address=0x10, delay=-1ms, type=0
supported, value=45, maximum=100
> id=contrast, name=Contrast, address=0x12, delay=-1ms, type=0
supported, value=75, maximum=100
--- [snip] ---
Вот и все, если все идет хорошо, значение яркости должно отображать точно такую же яркость, как установлено на мониторе. Теперь вы можете установить 50% яркости, используя эту команду (замените 0x10 на адрес значения яркости, найденный выше):
sudo ddccontrol dev:/dev/i2c-3 -r 0x10 -w 50
gddccontrol
GTK UI для ddccontrol
, но сначала вам нужно будет скомпоновать / chmod вашу шину I²C или написать правило udev, чтобы сделать это автоматически.
Основываясь на ответе @ M132, он ddccontrol
кажется не поддерживаемым и не добавляет конфигурации для каких-либо новых мониторов с 2006 года.
К счастью, есть более новый инструмент: ddcutil , который гораздо более надежен и активно развивается. После установки одного из готовых пакетов или сборки из исходного кода его можно использовать для запроса и установки яркости (среди множества других настроек):
# ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness ): current value = 60, max value = 100
# ddcutil setvcp 10 70
ddcutil capabilities | grep Luminosity
Есть xbacklight
- «настроить яркость подсветки с помощью расширения RandR».
Однако с моим монитором HDMI происходит сбой, поэтому я прибегаю к использованию модификации программного обеспечения:
xrandr --output HDMI2 --brightness 0.7
xbacklight
?
xrandr --output HDMI --brightness 0.7
xbacklight
будет работать с ноутбуками и другими устройствами, которые используют управление подсветкой на основе ACPI. Для настольных мониторов наиболее широко поддерживаемым решением является использование DDC и ddccontrol
.
Модуль ядра DDC / CI включает ddcci-backlight
модуль, который может интегрировать большинство мониторов с поддержкой DDC / CI в систему подсветки ядра ( /sys/class/backlight
). Это позволяет любому инструменту, который может использовать последний, управлять подсветкой на мониторе DDC / CI; например, используя встроенные элементы управления на рабочем столе GNOME:
Модуль ядра доступен в Debian (начиная с Debian 9) и его производных:
sudo apt install ddcci-dkms
kmod
для ddci
модулей ядра и действительно наслаждаюсь слайдером яркости, позволяющим управлять им без каких-либо сторонних приложений :) Спасибо за упоминание этого!
ati
,fglrx
,nouveau
,nvidia
, ...)?