Есть ли способ отрегулировать яркость монитора?

9

Использование софт-кнопок раздражает со временем. Я имею в виду реальную яркость подсветки (не гамма X11). Какие протоколы подходят для этого? (DVI, HDMI, DP, думаю, VGA нет)

ManuelSchneid3r
источник
1
Это может зависеть от вашего GPU и драйвера GPU. Какие графические карты у вас есть, и какой драйвер ( ati, fglrx, nouveau, nvidia, ...)?
Жиль "ТАК - перестань быть злым"

Ответы:

12

На самом деле, все эти интерфейсы способны управлять подсветкой (и не только), если видеокарта и монитор поддерживают канал данных дисплея .

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
M132
источник
1
Абсолютно круто спасибо. Это как-то интегрируется с гномом? Просто потому, что это гораздо больше времени, чем подносить пальцы к монитору. Тем не менее, это великолепно, наконец-то я могу написать сценарий своей яркости.
ManuelSchneid3r
1
К сожалению нет. Я также искал решение по яркости для GNOME после перехода с ноутбука на ПК. Похоже, что GNOME использует управление подсветкой X11, которое, в свою очередь, использует устройства класса подсветки Linux, и нет драйвера подсветки DDC ↔ Linux.
m132
1
Вы можете использовать gddccontrolGTK UI для ddccontrol, но сначала вам нужно будет скомпоновать / chmod вашу шину I²C или написать правило udev, чтобы сделать это автоматически.
m132
8

Основываясь на ответе @ 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
Крис Пик
источник
1
илиddcutil capabilities | grep Luminosity
Фабиан Шлипер
Ddccontrol получил много обновлений за последние пару лет
мир
4

Есть xbacklight- «настроить яркость подсветки с помощью расширения RandR».

Однако с моим монитором HDMI происходит сбой, поэтому я прибегаю к использованию модификации программного обеспечения:

xrandr --output HDMI2 --brightness 0.7
Сидхекин
источник
1
Его яркость дисплея 2015 года должна быть управляемой. ddccontrol.sourceforge.net выглядит как ответ, но авторы отказались от программного обеспечения.
ManuelSchneid3r
@ ManuelSchneid3r Ну, мой монитор HDMI не модель 2015 года. Есть ли проблема с xbacklight?
Сидхекин
У меня не работает. Я использую Dell U2414h.
ManuelSchneid3r
Ну, это модель 2013 года. ;-) Серьезно, я думаю, что он остается без поддержки, и что яркость программного обеспечения (все еще отличная от гаммы) - лучшее, что вы получаете:xrandr --output HDMI --brightness 0.7
Sidhekin
1
xbacklightбудет работать с ноутбуками и другими устройствами, которые используют управление подсветкой на основе ACPI. Для настольных мониторов наиболее широко поддерживаемым решением является использование DDC и ddccontrol.
m132
2

Модуль ядра DDC / CI включает ddcci-backlightмодуль, который может интегрировать большинство мониторов с поддержкой DDC / CI в систему подсветки ядра ( /sys/class/backlight). Это позволяет любому инструменту, который может использовать последний, управлять подсветкой на мониторе DDC / CI; например, используя встроенные элементы управления на рабочем столе GNOME:

Вверху справа на рабочем столе GNOME показаны регуляторы громкости звука и яркости экрана.

Модуль ядра доступен в Debian (начиная с Debian 9) и его производных:

sudo apt install ddcci-dkms
Стивен Китт
источник
Это просто потрясающе. Это своего рода пример более глубокой аппаратной интеграции в Linux, которой, к сожалению, не хватает во многих дистрибутивах. Только что сделал упаковку kmodдля ddciмодулей ядра и действительно наслаждаюсь слайдером яркости, позволяющим управлять им без каких-либо сторонних приложений :) Спасибо за упоминание этого!
Данила Вершинин