Alright! I ended up working my way through the issue.
After running chromium autostart as root and inspecting the xorg log as @Joulinar suggested, I noticed this: (EE) Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices
.
A bit of searching led me to this post which had the solution…Create 99-vc4.conf
in /etc/X11/xorg.conf.d/
with the following content:
Section "OutputClass"
Identifier "vc4"
MatchDriver "vc4"
Driver "modesetting"
Option "PrimaryGPU" "true"
EndSection
After rebooting, chromium launched my URL in 4K. I have yet to try this as the dietpi user which I would prefer to do. I’ll report back on that later.
Update: No permission issues running as user dietpi.
Update 2: For future readers…a better explanation. This is a result of Debian moving away from X in favor of Wayland (I think). The kernel creates two devices, /dev/dri/card0
and /dev/dri/card1
. One is for vc4 (display) and the other is for v3d (3d hardware). They are allocated randomly. X is dumb, it just uses /dev/dri/card0
which ends up working/failing half of the time. The generic Debian packages don’t know that Pi has a display driver called vc4, so you need a config file to describe that. That config exists in the full versions of RPIOS. The devs don’t care about X working in their lite versions because they are intended to be used without a desktop, so they didn’t bother to address this issue. I assume that DietPi is based on the lite images of Raspberry Pi OS, so it must have inherited the same issue.
I deserve 0 credit for that explanation btw. Most of if was copy and pasted from the Raspberry Pi forum.