is anyone using the original Pi 7" DSI screen with Fedora IoT?
We tried to adjust the config.txt as well as the kernel args (lifting the vc4 blacklist, blacklisting simpledrm, pre-loading vc4), but in the end it comes down to:
Mar 13 00:00:42 localhost.localdomain cage[810]: 00:00:00.062 [INFO] [backend/drm/backend.c:225] Initializing DRM backend for /dev/dri/card0 (simpledrm)
simpledrm managing a device where we would expect vc4.
The overlays are there, the vc4 module gets loaded. But somehow we can’t seem to get the gpu bound to the driver. Any ideas?
As you mentioned, Fedora IoT ships with modprobe.blacklist=vc4 on the kernel command line, which prevents the VC4 GPU driver from loading. With VC4 blocked, simpledrm is the
only DRM driver available and why you see it as card0.
The VC4 GPU will show as platform-soc:gpu-card. If it’s not on card0, you’ll need to point your compositor at the correct device. For cage, sway, and other wlroots-based compositors, set the WLR_DRM_DEVICES environment variable:
WLR_DRM_DEVICES=/dev/dri/cardN
where cardN matches the platform-soc:gpu-card symlink.
If I remove both display_auto_detect=1 and dtoverlay=vc4-kms-dsi-7inch from config.txt, I get a dri device, but it only has HDMI and Composite. Not DSI.
arm_64bit=1
kernel=rpi-u-boot.bin
arm_boost=1
enable_uart=1
dtparam=audio=on
camera_auto_detect=0
# Stop the RPi turning on HDMI monitors on reboot
hdmi_ignore_cec_init=1
dtparam=i2c_arm=on
# Raspberry Pi 3 series
[pi3]
gpu_mem=16
dtoverlay=upstream
dtoverlay=vc4-kms-v3d,cma-64
max_framebuffers=2
# reset filters, apply to all
[all]
If I add dtoverlay=vc4-kms-dsi-7inch, I only get the card0 as simpleframebuffer device.
I ran dtc -s -I fs -O dts /proc/device-tree on both a working raspios with display working and a current fedora iot 44. i then diffed the result and it came out:
The .dtbo files from raspios and fedora iot 44 sha1sum to the same hashes, so they are not the problem. Has to to with how fedora builds the device tree.