I did my building on ubuntu,
1) Get the build tools + dependencies
2) statically build jansson (./configure --enable-static --disable-shared CFLAGS="-fPIC")
3) clone, etc.. for ddcutil, setup, then config (./configure --disable-usb --disable-drm --disable-x11 LDFLAGS="-Wl,-Bstatic -ljansson -Wl,-Bdynamic")
4) build
This is still relevant in 2026. Thanks to CoolPenguin42, your post helped me.
I managed to compile ddcutil for my RPI 5 with Libreelec 12.2.1. I used a Pi3 to compile. I installed Raspberry Pi OS Lite 13 (64-bit) and used jansson-2.13 and ddcutil-2.2.5 (no higher versions of ddcutil would compile).
1) I didn't have to install anything special to compile Jansson, but I did have to enable I2C for the development computer (Pi3) using raspi-config and install i2c-tools.
2) No change.
3) There was no need to clone anything, but I did have to install gtk3-devel, libacl1-dev, and libudev-dev. Then, running the "./configure..." command above worked.
4) make, make install
This created the file /usr/local/bin/ddcutil. I copied it to the target Pi5 with Libreelec 12.2.1, to /storage/local/ddcutil. I edited the file /flash/config.txt and added the line: dtparam=i2c_arm=on. After a reboot, I was able to use ddcutil!