教你如何在优麒麟上调节外接显示器,如亮度、色彩等方面!
一、ddcutil简介
ddcutil是优麒麟系统中自带的一个管理显示器设置的Linux程序,例如亮度调节和色彩校准等。一般来说,任何可以通过显示器上按钮来改变的设置都可以被ddcutil修改。ddcutil主要使用DDC/CI(显示数据通道命令接口),通过I2C与实施MCCS(显示器控制命令集)的显示器进行通信,以此来修改显示器参数。
需要注意的是:
● ddcutil不支持笔记本显示器,因为笔记本显示设备是通过特殊的API进行控制的,并非I2C。
● 一般来说,ddcutil可以在虚拟机中构建,但不会在虚拟机中运行,这是因为虚拟视频驱动中没有实现I2C。当然,如果虚拟机连接到一个单独的视频卡,并且在passthru模式下运行该视频卡的非虚拟化驱动程序,那么ddcutil将可以正常工作。
● Nvidia的专有视频驱动程序可能需要特殊配置才可正常运行ddcutil。
● 不同的显示器在DDC实施方面具有差异性,因此部分信息是否存在或有效将取决于该显示器,比较常见的缺陷是缺少序列号。
二、ddcutil在UKUI中的使用
目前在UKUI桌面环境中,ddcutil主要用于外接显示器的亮度调节功能。ukui-control-center通过kscreen可以获取到所有显示器的硬件信息,包括但不局限于显示器的唯一序列号以及显示器名称。当同一主机连接多台显示器时,使用唯一序列号就可以对特定的显示器进行亮度调节。
虽然使用ddcutil调节亮度需要root权限,但是在ukui-control-center的总线进程中实际上会提供相应接口,所以其它进程在使用该接口时只需要提供序列号参数,即可获取该显示亮度或者修改该显示器的亮度。
三、命令示例
下面给大家列举一些常见的使用命令,可以帮助我们在优麒麟上轻松实现外接显示器亮度调节!
1、检测示例:
sudo ddcutil detect
该命令可查看主机与显⽰器是否正常建立了通信,可以获取到显示器的I2C总线号、序列号等信息。当有多个显示器时,可以添加--async参数,提高检测效率。
2、获取显示器亮度(getvcp,这里需要用到上面检测命令中的信息):
3、设置亮度(setvcp,可以看到设置之后亮度值由51变为了80):
当然ddcutil工具的功能是非常强大的,它具有多种用途,想了解更多详情的小伙伴可进入其官网查看学习:http://www.ddcutil.com/ 。
通讯员:冯超
来源:终端研发部
审核:优麒麟社区