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


Answers:


12

实际上,只要图形卡和监视器都支持Display Data Channel,所有这些接口都可以进行背光控制(以及更多功能)。

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(显示端口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

1
绝对很棒,谢谢。这会以某种方式与gnome集成吗?仅仅因为这比将手指移到显示器上要花费更多时间。仍然如此美丽,最后我可以编写自己的亮度。
ManuelSchneid3r

1
抱歉不行。从笔记本电脑转移到PC后,我也在寻找GNOME的亮度解决方案。看起来GNOME使用X11背光控制,而X11则使用Linux的背光类设备,并且没有DDC↔Linux背光驱动程序。
m132

1
您可以将gddccontrol,GTK UI用于ddccontrol,但首先必须对I²C总线进行chown / chmod或编写udev规则来自动执行。
2016年

8

ddccontrol自2006年以来,以@ M132的答案为基础,似乎没有得到维护,也没有为任何新显示器添加配置。

幸运的是,有一个更新的工具: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
Fabian Schlieper,

Ddccontrol在过去几年中进行了大量更新
mirh

4

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

但是,它在我的HDMI监视器上失败了,因此我退回到使用软件修改的方式:

xrandr --output HDMI2 --brightness 0.7

1
其2015年的显示屏亮度应该是可控的。ddccontrol.sourceforge.net看起来像一个答案,但该软件已被作者放弃。
ManuelSchneid3r 2015年

@ ManuelSchneid3r好吧,我的HDMI监视器不是2015年型号。有问题xbacklight吗?
Sidhekin

它对我不起作用。我使用Dell u2414h。
ManuelSchneid3r 2015年

好吧,那是2013年的模型。;-)严重的是,我最好的猜测是它仍然不受支持,并且软件的亮度(仍然不同于Gamma)是您所能获得的最好的: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中更深层次的硬件集成的示例。刚刚完成kmodddci内核模块的包装,并且真的很喜欢亮度滑块,无需任何第三方应用程序即可控制它:)感谢您提到它!
Danila Vershinin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.