Gibt es eine Möglichkeit, die Helligkeit des Monitors anzupassen?

9

Die Verwendung der Softbuttons ist im Laufe der Zeit ärgerlich. Ich meine die tatsächliche Helligkeit der Hintergrundbeleuchtung (nicht X11 Gamma). Welche Protokolle sind dafür geeignet? (DVI, HDMI, DP, denke, VGA ist nicht)

ManuelSchneid3r
quelle
1
Dies kann von Ihrer GPU und Ihrem GPU-Treiber abhängen. Was Grafikkarte Sie haben und welche Treiber ( ati, fglrx, nouveau, nvidia, ...)?
Gilles 'SO - hör auf böse zu sein'

Antworten:

12

Tatsächlich können alle diese Schnittstellen die Hintergrundbeleuchtung (und mehr) steuern, solange sowohl die Grafikkarte als auch der Monitor den Anzeigedatenkanal unterstützen .

DDC basiert auf I²C, daher müssen Sie die entsprechenden Kernelmodule installieren und laden, damit es funktioniert.

# Debian
sudo apt-get install i2c-tools
sudo modprobe i2c-dev

# RHEL
sudo dnf install i2c-tools

Danach müssen Sie herausfinden, welcher I²C-Bus mit dem Monitor verbunden ist 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

Im Fall von Intel ist der richtige Bus einer der DPDDCs ( Display Port DDC ), je nachdem, welchen Port Sie verwenden. In meinem Fall werden sowohl HDMI als auch DP als DP angezeigt.

Im AMD- Fall heißt der Bus card0- interface - n .

Wenn keine Schnittstellen aufgeführt sind, unterstützt Ihre Karte / Ihr Treiber DDC nicht auf standardmäßige Weise.

Jetzt müssen wir prüfen, ob der Monitor DDC unterstützt und die Helligkeit auf diese Weise einstellen kann. Installieren Sie zunächst ddccontrol:

# Debian
sudo apt-get install ddccontrol

# RHEL
sudo dnf install ddccontrol

Anschließend wird eine Liste der unterstützten DDC-Parameter abgerufen, die diese verwenden. In diesem Beispiel wird davon ausgegangen, dass Ihre DDC-Schnittstelle an den i2c-3-Bus gebunden ist.

# sudo ddccontrol dev:/dev/i2c-3 
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin ([email protected])
Copyright 2004-2006 Nicolas Boichat ([email protected])
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] ---

Das ist es, wenn alles richtig läuft, sollte der Helligkeitswert genau die gleiche Helligkeit melden, die auf dem Monitor eingestellt ist. Sie können jetzt mit diesem Befehl 50% Helligkeit einstellen (ersetzen Sie 0x10 durch die Adresse des oben angegebenen Helligkeitswerts):

sudo ddccontrol dev:/dev/i2c-3 -r 0x10 -w 50
m132
quelle
1
Absolut cool, danke. Integriert sich das irgendwie in den Gnom? Nur weil dies viel zeitaufwändiger ist, als meine Finger zum Monitor zu bewegen. Trotzdem ist das großartig, endlich kann ich meine Helligkeit schreiben.
ManuelSchneid3r
1
Unglücklicherweise nicht. Ich habe auch nach einer Helligkeitslösung für GNOME gesucht, nachdem ich vom Laptop auf einen PC gewechselt bin. Es sieht so aus, als ob GNOME die X11-Hintergrundbeleuchtungssteuerung verwendet, die wiederum Geräte der Linux-Hintergrundbeleuchtungsklasse verwendet, und es gibt keinen DDC® Linux-Hintergrundbeleuchtungstreiber.
m132
1
Sie können gddccontroleine GTK-Benutzeroberfläche für verwenden ddccontrol, aber zuerst müssen Sie Ihren I²C-Bus chown / chmod oder eine udev-Regel schreiben, um dies automatisch zu tun.
m132
8

Aufbauend auf der Antwort von @ M132 ddccontrolerscheint es nicht gewartet und hat seit 2006 keine Konfigurationen für neue Monitore hinzugefügt.

Glücklicherweise gibt es ein neueres Tool: ddcutil , das viel robuster und aktiver entwickelt ist. Nach der Installation eines der vorgefertigten Pakete oder dem Erstellen aus dem Quellcode kann es zum Abfragen und Festlegen der Helligkeit verwendet werden (unter unzähligen anderen Einstellungen):

# ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100
# ddcutil setvcp 10 70
Chris Pick
quelle
1
oderddcutil capabilities | grep Luminosity
Fabian Schlieper
Ddccontrol hat in den letzten Jahren einige Updates erhalten
mirh
4

Es gibt xbacklight- "Helligkeit der Hintergrundbeleuchtung mit RandR-Erweiterung anpassen".

Bei meinem HDMI-Monitor schlägt dies jedoch fehl, sodass ich auf die Verwendung von Softwaremodifikationen zurückgreifen kann:

xrandr --output HDMI2 --brightness 0.7
Der Sidhekin
quelle
1
Die Displayhelligkeit 2015 sollte steuerbar sein. ddccontrol.sourceforge.net sieht aus wie eine Antwort, aber die Software wird von den Autoren aufgegeben.
ManuelSchneid3r
@ ManuelSchneid3r Nun, mein HDMI-Monitor ist kein Modell von 2015. Gibt es ein Problem mit xbacklight?
Die Sidhekin
Es funktioniert nicht bei mir. Ich benutze ein Dell U2414h.
ManuelSchneid3r
Nun, das ist ein Modell von 2013. ;-) Im Ernst, meine beste Vermutung ist, dass es nicht unterstützt wird und dass die Software-Helligkeit (immer noch anders als bei Gamma) die beste ist, die Sie erhalten:xrandr --output HDMI --brightness 0.7
The Sidhekin
1
xbacklightfunktioniert mit Laptops und anderen Geräten, die eine ACPI-basierte Hintergrundbeleuchtung verwenden. Für Desktop-Monitore ist die am weitesten unterstützte Lösung die Verwendung von DDC und ddccontrol.
m132
2

Das DDC / CI-Kernelmodul enthält ein ddcci-backlightModul, das die meisten DDC / CI-fähigen Monitore in das Hintergrundbeleuchtungssystem des Kernels integrieren kann ( /sys/class/backlight). Auf diese Weise kann jedes Tool, das letzteres verwenden kann, die Hintergrundbeleuchtung eines DDC / CI-Monitors steuern. Verwenden Sie beispielsweise die integrierten Steuerelemente auf dem GNOME-Desktop:

Oben rechts auf einem GNOME-Desktop werden die Einstellungen für Lautstärke und Bildschirmhelligkeit angezeigt

Das Kernelmodul ist in Debian (seit Debian 9) und abgeleiteten Distributionen verfügbar:

sudo apt install ddcci-dkms
Stephen Kitt
quelle
Das ist einfach großartig. Eine Art Beispiel für eine tiefere Hardware-Integration in Linux, die vielen Distributionen leider fehlt. Wir haben gerade das Packen kmodfür ddciKernelmodule abgeschlossen und genießen den Helligkeitsregler, mit dem Sie ihn ohne Apps von Drittanbietern steuern können :) Vielen Dank, dass Sie ihn erwähnt haben!
Danila Vershinin