Thank you for a very informative and helpful answer. This does achieve exactly what I want here. I've set the FB bpp to 32 to hopefully line up with long word addresses.You can override that via the "video=" kernel command line property as documented in https://www.kernel.org/doc/html/latest/fb/modedb.html. Annoyingly you then also have to fix the resolution.
"video=HDMI-A-1:1920x1080-24" should configure the 24bpp framebuffer you're after. Valid values should be 16, 24, or 32bpp.
I found that "framebuffer_depth" works but only when no vc4 overlay is selected and the system is using some default basic video driver. The problem I hit here was that it would only support 640x480 and 1920x1080.
Specifying the video resolution isn't a problem for me because I have to load a custom EDID for some of my screens anyway. Wiki tells me that EDID 1.3+ byte 24 bit 1 set means that the first detailed resolution entry is the preferred one. But the linux drm edid code only checks this bit for EDID 1.4+. Some other EDIDs don't have this bit set even though the first detailed entry is the preferred resolution. So all I can do is change the EDID slightly and force it with a drm.edid_firmware entry.
Thanks,
Steven
Statistics: Posted by phelum — Thu Jul 17, 2025 7:08 pm







