Existe-t-il un moyen d'ajuster la luminosité du moniteur?

9

L'utilisation des boutons programmables est gênante au fil du temps. Je veux dire la vraie luminosité du rétro-éclairage (pas le gamma X11). Quels protocoles en sont capables? (DVI, HDMI, DP, je suppose que VGA ne l'est pas)

ManuelSchneid3r
la source
1
Cela peut dépendre de votre GPU et de votre pilote GPU. Quelle carte graphique avez - vous, et quel pilote ( ati, fglrx, nouveau, nvidia, ...)?
Gilles 'SO- arrête d'être méchant'

Réponses:

12

En fait, toutes ces interfaces sont capables de contrôler le rétroéclairage (et plus), tant que la carte graphique et le moniteur prennent en charge le canal de données d'affichage .

DDC est basé sur I²C, vous devez donc installer et charger les modules de noyau appropriés pour le faire fonctionner.

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

# RHEL
sudo dnf install i2c-tools

Après cela, vous devez savoir quel bus I²C est connecté au moniteur à l'aide 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

Dans le cas d' Intel , le bus de droite est l'un des DPDDC ( Display Port DDC ), selon le port que vous utilisez. Dans mon cas, HDMI et DP sont affichés en tant que DP.

Dans le cas AMD , le bus est appelé interface card0- - n .

Si aucune interface n'est répertoriée, votre carte / pilote ne prend pas en charge DDC de manière standard.

Nous devons maintenant vérifier si le moniteur prend en charge DDC et permet-il de régler la luminosité de cette façon. Tout d'abord, installez ddccontrol:

# Debian
sudo apt-get install ddccontrol

# RHEL
sudo dnf install ddccontrol

Ensuite, listez la liste des paramètres DDC pris en charge en l'utilisant. Cet exemple suppose que votre interface DDC est liée au bus i2c-3.

# 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] ---

C'est tout, si tout se passe bien, la valeur de luminosité devrait rapporter exactement la même luminosité que celle définie sur le moniteur. Vous pouvez maintenant définir une luminosité de 50% à l'aide de cette commande (remplacez 0x10 par l'adresse de la valeur de luminosité trouvée ci-dessus):

sudo ddccontrol dev:/dev/i2c-3 -r 0x10 -w 50
m132
la source
1
Merci absolument cool. Est-ce que cela s'intègre en quelque sorte à gnome? Tout simplement parce que cela prend beaucoup plus de temps que de déplacer mes doigts vers le moniteur. C'est toujours magnifique, enfin je peux script ma luminosité.
ManuelSchneid3r
1
Malheureusement non. J'ai également recherché une solution de luminosité pour GNOME après mon passage d'un ordinateur portable à un PC. Il semble que GNOME utilise le contrôle de rétroéclairage X11, qui à son tour utilise les périphériques de classe de rétroéclairage de Linux, et il n'y a pas de pilote de rétroéclairage DDC Linux.
m132
1
Vous pouvez utiliser gddccontrolune interface utilisateur GTK pour ddccontrol, mais vous devez d'abord chown / chmod votre bus I²C ou écrire une règle udev pour le faire automatiquement.
m132
8

S'appuyant sur la réponse de @ M132, il ddccontrolsemble non entretenu et n'a ajouté aucune configuration pour de nouveaux moniteurs depuis 2006.

Heureusement, il existe un outil plus récent: ddcutil , qui est beaucoup plus robuste et développé activement. Après avoir installé l'un des packages prédéfinis ou construit à partir de la source, il peut être utilisé pour interroger et définir la luminosité (parmi une myriade d'autres paramètres):

# 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
la source
1
ouddcutil capabilities | grep Luminosity
Fabian Schlieper
Ddccontrol a reçu de nombreuses mises à jour au cours des dernières années
mirh
4

Il y a xbacklight- "régler la luminosité du rétro-éclairage en utilisant l'extension RandR".

Cependant, cela échoue avec mon moniteur HDMI, donc je reviens à l'utilisation de la modification logicielle:

xrandr --output HDMI2 --brightness 0.7
Le Sidhekin
la source
1
Sa luminosité d'affichage 2015 devrait être contrôlable. ddccontrol.sourceforge.net ressemble à une réponse mais le logiciel est abandonné par les auteurs.
ManuelSchneid3r
@ ManuelSchneid3r Eh bien, mon moniteur HDMI n'est pas un modèle 2015. Y a-t-il un problème avec xbacklight?
Le Sidhekin
Ça ne marche pas pour moi. J'utilise un Dell u2414h.
ManuelSchneid3r
Eh bien, c'est un modèle 2013. ;-) Sérieusement, ma meilleure supposition est qu'elle reste non prise en charge et que la luminosité du logiciel (toujours distincte de Gamma) est la meilleure que vous obteniez:xrandr --output HDMI --brightness 0.7
Le Sidhekin
1
xbacklightfonctionnera avec les ordinateurs portables et autres appareils qui utilisent le contrôle du rétroéclairage basé sur ACPI. Pour les moniteurs de bureau, la solution la plus largement prise en charge consiste à utiliser DDC et ddccontrol.
m132
2

Le module du noyau DDC / CI comprend un ddcci-backlightmodule qui peut intégrer la plupart des moniteurs compatibles DDC / CI dans le système de rétroéclairage du noyau ( /sys/class/backlight). Cela permet à tout outil qui peut utiliser ce dernier de piloter le rétro-éclairage sur un moniteur DDC / CI; par exemple, en utilisant les commandes intégrées sur le bureau GNOME:

En haut à droite d'un bureau GNOME, affichant les commandes de volume sonore et de luminosité de l'écran

Le module du noyau est disponible dans Debian (depuis Debian 9) et dans les distributions dérivées:

sudo apt install ddcci-dkms
Stephen Kitt
la source
C'est tout simplement génial. Une sorte d'exemple d'intégration matérielle plus profonde sous Linux qui manque malheureusement à beaucoup de distributions. Emballage juste fait kmodpour ddciles modules du noyau et appréciant vraiment le curseur de luminosité permettant de le contrôler sans aucune application tierce :) Merci de l'avoir mentionné!
Danila Vershinin