рецепт yocto для ddcutil
Для этого проекта нужна библиотека ddcutil, чтобы обеспечить доступ к настройкам HDMI-дисплея через шину I2C.
Чтобы включить библиотеку ddcutil в пользовательскую систему Linux, нужно создать рецепт.
Рецепт ddcutil_git.bb
В пользовательском метаслое создайте папку "recipes-support/ddcutil". В ней создайте файл "ddcutil_git.bb".
SUMMARY = "Tool to modify display settings by ddc (hdmi)"
HOMEPAGE = "http://www.ddcutil.com"
AUTHOR = "Sanford Rockowitz "
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.