Fix Xorg modesetting on vc4 + skip enable_gpu on Pi 4+ (FullPageOS #708) - #276
Merged
Conversation
On Pi 5 with vc4-kms-v3d, Xorg autoconfig tries to use both the fbdev driver (on /dev/fb0) and the modesetting driver (on /dev/dri/card1), which causes: (EE) Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices Fatal server error: no screens found This results in the FullPageOS kiosk (chromium) never starting on Pi 5 — issue guysoft/FullPageOS#708. The fix adds an Xorg OutputClass config that forces the modesetting driver for the vc4 DRM device, preventing the fbdev/modesetting conflict. Confirmed working on Pi 5 with a physical HDMI display: - lightdm starts (active) - matchbox-window-manager starts - chromium kiosk starts (--kiosk --app=http://localhost/...) - FullPageDashboard loads (HTTP 200) - xrandr shows HDMI-1 connected 1920x1200 Fixes: guysoft/FullPageOS#708
guysoft
commented
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the two real-hardware boot bugs reported in FullPageOS 1.0.0-rc1 (guysoft/FullPageOS#708):
Black screen with flashing cursor (Pi 5, Trixie): Xorg autoconfig matches
modesettingbut falls back to fbdev and dies with(EE) Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices, so lightdm restart-loops forever and the display stays black. Ship/etc/X11/xorg.conf.d/99-vc4.conf(OutputClass: MatchDriver vc4 → modesetting, PrimaryGPU) so X binds the KMS device.Unwanted first-boot behavior from
enable_gpu(runs on every Pi): the scriptseds a wrong path (/opt/custompios/scripts/scripts/start_gui, doublescripts/), editscmdline.txt/config.txt, and callsshutdown -r nowunconditionally on first boot — the "reboots itself a couple times" reports. On Pi 4+/5 vc4 KMS is already the default, so the script now detects the model and skips (touching/etc/gpu_enabled).Hardware verification (rig: Pi 5, HDMI capture card)
99-vc4.conf+systemctl start lightdm: Chromium kiosk starts and the FullPageOS welcome page renders on HDMI (logo, QR, bit.ly/FPOSSETUP).Notes
enable_gpuskip uses the revision codemodel_id = hex & 0xffff>= 0x0040 check to detect Pi 4+ / newer models.Based on: guysoft/FullPageOS#708 (beakercs's confirmed workaround)