helloSystem / ISO

helloSystem Live and installation ISO
https://github.com/helloSystem/
BSD 3-Clause "New" or "Revised" License
807 stars 58 forks source link

Control external displays (e.g., brightness) with DDC/CI #273

Open probonopd opened 3 years ago

probonopd commented 3 years ago

helloSystem should get the ability to control external displays (e.g., change the brightness).

Need to find out the state of the Display Data Channel/Command Interface (DDC/CI) on FreeBSD. https://www.reddit.com/r/freebsd/comments/ke51oq/controlling_displays_with_ddcci/ is wondering the same thing.

Wikipedia:

DDC/CI (Command Interface) standard was introduced in August 1998. It specifies a means for a computer to send commands to the monitor, as well as receive sensor data from the monitor, over a bidirectional link. Specific commands to control monitors are defined in a separate Monitor Control Command Set (MCCS) standard version 1.0, released in September 1998. (...) Despite its ubiquity in post-2016 displays, DDC/CI is not generally used by the operating system by default for brightness control on external displays.[9] Additional software can be used to send commands to the display, but the degree of system integration vary.

https://www.ddcutil.com/release_notes/ says:

Some configure options have been added, primarily in support of an as yet incomplete FreeBSD implementation. (Development is suspended until FreeBSD's video drivers expose the I2C bus.)

@rockowitz, the developer of ddcutil, has loaded the i2c drivers iicbus.ko, iic.ko, and video driver nvidia.ko, but the devices /dev/iicN do not exist (which I can confirm). Are we missing something or is additional development within FreeBSD necessary to access the i2c bus that is used for display communication?

https://forums.freebsd.org/threads/accessing-i2c-devices-from-userspace.77145/

probonopd commented 2 years ago

Maybe @evadot knows?

evadot commented 2 years ago

We do not expose the i2c device node currently. I have some almost finished work https://reviews.freebsd.org/D33053 that fixes this. I have no idea about nvidia.

probonopd commented 2 years ago

Very cool that this is being developed. Thanks a lot @evadot.