Skip to content

Heads up: fbtft (these overlays) is fundamentally incompatible with KMS (vc4-kms-v3d) -- and LCD35-show/MHS35-show can silently break an existing setup if run without reading it first #428

Description

@patricklum808

July 10, 2026

Posting this as a pointer for anyone using this repo's overlays alongside a Pi setup that also needs a forced/no-EDID HDMI output (e.g. drm.edid_firmware= + video= KMS-based forcing) — you'll hit a real, structural incompatibility, not a config mistake:

fbtft (the legacy framebuffer driver family these overlays install) does not work under KMS (vc4-kms-v3d). Under KMS, the panel driver still probes and appears to bind, but writes never reach the physical panel. If you need both a forced HDMI output and a working SPI panel, the fix is to comment out dtoverlay=vc4-kms-v3d in config.txt and force HDMI the legacy way (hdmi_force_hotplug=1 / hdmi_group=1 / hdmi_mode=16 etc.), not the newer EDID-firmware/KMS mechanism. Side effect: under the legacy stack /dev/fb0 is typically 32bpp BGRA-ish, not the 16bpp RGB565 you might see reported under KMS — worth checking with fbset rather than assuming.

Separately, a general caution for anyone new here: the LCD35-show/MHS35-show scripts rewrite config.txt, WiFi config, and inittab/modules wholesale. If you're on a headless box or already have a customized config.txt (forced HDMI, custom overlays, etc.), read the script before running it — it's easy to lose an unrelated working setup. Installing the relevant dtoverlay= line by hand (copy the .dtbo, add one config.txt line) avoids this entirely and is enough for the panel alone.

Full write-up: https://gist.github.com/patricklum808/2a0fcbf12283083eded8dd87855a0de9

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions