有没有办法调节显示器的亮度?

有没有办法调节显示器的亮度?

随着时间的推移,使用软按钮会变得很烦人。我的意思是背光的真实亮度(不是 X11 伽玛)。哪些协议可以实现这一点? (DVI、HDMI、DP,猜测VGA不是)

答案1

实际上,所有这些接口都能够进行背光控制(以及更多),只要显卡和显示器都支持背光控制显示数据通道

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

英特尔情况下,正确的总线是 DPDDC 之一(显示端口 DDC),具体取决于您使用的端口。在我的例子中,HDMI 和 DP 都显示为 DP。

AMD情况下,总线称为card0-界面-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 ([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] ---

就是这样,如果一切顺利,亮度值应该报告与显示器中设置的亮度完全相同的亮度。您现在可以使用此命令设置 50% 亮度(将 0x10 替换为上面找到的亮度值的地址):

sudo ddccontrol dev:/dev/i2c-3 -r 0x10 -w 50

答案2

基于 @M132 的答案,ddccontrol似乎没有维护,并且自 2006 年以来没有添加任何新显示器的配置。

幸运的是,有一个更新的工具:ddutil,更加强大且积极开发。安装其中之一后预建包或从源代码构建,它可用于查询和设置亮度(以及无数其他设置):

# ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100
# ddcutil setvcp 10 70

答案3

DDC/CI内核模块包括一个ddcci-backlight模块,可以将大多数支持 DDC/CI 的监视器集成到内核的背光系统中 ( /sys/class/backlight)。这允许任何可以使用后者来驱动 DDC/CI 监视器上的背光的工具;例如,使用 GNOME 桌面上的内置控件:

GNOME 桌面的右上角,显示音量和屏幕亮度控件

内核模块在 Debian(自 Debian 9 起)和衍生发行版中可用:

sudo apt install ddcci-dkms

答案4

xbacklight– “使用 RandR 扩展调整背光亮度”。

然而,我的 HDMI 显示器失败了,所以我转而使用软件修改:

xrandr --output HDMI2 --brightness 0.7

相关内容