ddcutil yocto 方案
对于本项目,我们需要有 ddcutil 库才能通过 I2C 访问 HDMI 显示设置。要将 ddcutil 库包含到您的定制 linux 系统中,您必须为其创建定制方案。#### ddcutil_git.bb 方案
在您的定制 meta 层中创建文件夹“recipes-support/ddcutil”。在此文件夹中,创建文件“ddcutil_git.bb”。
SUMMARY = "Tool to modify display settings by ddc (hdmi)"
HOMEPAGE = "http://www.ddcutil.com"
AUTHOR = "Sanford Rockowitz rockowitz@minsoft.com"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
BRANCH = "master"
SRCREV = "5080161b456cc6a1fd3e6db3dc537e1dcd1c809b"
PV = "1.2.2+${SRCPV}"
SRC_URI = "
git://github.com/rockowitz/ddcutil;branch=${BRANCH};protocol=https;
"
disable trying to fetch from mirrors
PREMIRRORS = ""
MIRRORS = ""
DEPENDS += "
i2c-tools
libusb1
libdrm
libgudev
"
RDEPENDS_${PN} += "
i2c-tools
i2c-tools-misc
libdrm
"
S = "${WORKDIR}/git"
EXTRA_OECONF += "
--disable-x11 --enable-drm --disable-usb --enable-lib --disable-doxygen
"
inherit autotools pkgconfig
将 ddcutil 包含到您的镜像种
您必须将方案包含在您的 Yocto Linux 中:
IMAGE_INSTALL:append = " ddcutil"
您现在可以对您的对镜像执行 bitbake 命令并测试结果。
测试 ddcutil
登录到您的定制嵌入式系统或通过 SSH 连接。现在,您可以使用 ddcutil 命令查看该实现是否成功。#### 探测到报告显示器
首先,您可以检测 HDMI 监视器是否已连接并可通过 ddcutil 使用。使用以下命令:
ddcutil detect
输出应该是这个样子:
Display 1
I2C bus: /dev/i2c-3
EDID synopsis:
Mfg id: IVM
Model: PLT2236
Product code: 22057
Serial number: 11402A7100051
Binary serial number: 51 (0x00000033)
Manufacture year: 2017, Week: 1
VCP version: 2.1
获取所有设置
要获取所有设置,请使用以下命令:
ddcutil getvcp all
输出应该是这个样子:
VCP code 0x02 (New control value ): No user controls are present (0xff)
VCP code 0x0b (Color temperature increment ): 50 degree(s) Kelvin
VCP code 0x0c (Color temperature request ): 3000 + 70 * (feature 0B color temp increment) degree(s) Kelvin
VCP code 0x10 (Brightness ): current value = 100, max value = 100
VCP code 0x12 (Contrast ): current value = 50, max value = 100
VCP code 0x14 (Select color preset ): User 1 (sl=0x0b)
VCP code 0x16 (Video gain: Red ): current value = 100, max value = 100
VCP code 0x18 (Video gain: Green ): current value = 100, max value = 100
VCP code 0x1a (Video gain: Blue ): current value = 100, max value = 100
VCP code 0x52 (Active control ): Value: 0x00
VCP code 0x60 (Input Source ): DVI-1 (sl=0x03)
VCP code 0x62 (Audio speaker volume ): current value = 49, max value = 100
VCP code 0x6c (Video black level: Red ): current value = 50, max value = 100
VCP code 0x6e (Video black level: Green ): current value = 50, max value = 100
VCP code 0x70 (Video black level: Blue ): current value = 50, max value = 100
VCP code 0x8d (Audio Mute ): Unmute the audio (sl=0x02)
VCP code 0xac (Horizontal frequency ): 1964 hz
VCP code 0xae (Vertical frequency ): 60.00 hz
VCP code 0xb2 (Flat panel sub-pixel layout ): Red/Green/Blue vertical stripe (sl=0x01)
VCP code 0xb6 (Display technology type ): LCD (active matrix) (sl=0x03)
VCP code 0xc0 (Display usage time ): Usage time (hours) = 1030 (0x000406) mh=0xff, ml=0xff, sh=0x04, sl=0x06
VCP code 0xc6 (Application enable key ): 0x006f
VCP code 0xc8 (Display controller type ): Mfg: Novatek (sl=0x12), controller number: mh=0xff, ml=0xff, sh=0x00
VCP code 0xc9 (Display firmware level ): 0.2
VCP code 0xca (OSD ): OSD Enabled (sl=0x02)
VCP code 0xcc (OSD Language ): English (sl=0x02)
VCP code 0xd6 (Power mode ): DPM: On, DPMS: Off (sl=0x01)
VCP code 0xdc (Display Mode ): User defined (sl=0x04)
VCP code 0xdf (VCP Version ): 2.1
设置亮度
要将显示器的亮度设置为 50 %,请使用以下命令:
ddcutil setvcp 10 50
版权许可
版权所有 © 2022 Interelectronix e.K.
本项目源代码根据 GPL-3.0 许可证获得许可。