I’ve been debugging why my Argon One case (which includes a raspi hat) which operates a Raspberry
Pi 4 does not work when running Ubuntu Desktop 22.04. When looking at the config.txt file, I noticed that contrary to the 22.04 release notes, it had dtoverlay=vc4-kms-v3d instead of dtoverlay=vc4-fkms-v3d. Changing it to what it should have been, dtoverlay=vc4-fkms-v3d (full kms) resolved the issues with the Argon One case.
Is there a reason why the Ubuntu Desktop 22.04 image had the incorrect kms configuration? I will check a fresh flash now, and see if it is incorrect upon flash, incorrect upon initial boot, or incorrect post-installation.
Here is the section from the release notes:
Raspberry Pi
The Raspberry Pi desktop images have switched to using the Full KMS graphics drivers. The official Raspberry Pi DSI display does not work with full KMS enabled. To enable the use of the Raspberry Pi DSI display, edit the config.txt file on your Raspberry Pi’s hard drive and change the line dtoverlay=vc4-fkms-v3d to dtoverlay=vc4-kms-v3d
Just checked it on a sd card freshly formatted to Ubuntu Desktop 22.04, and the config.txt was set to:
dtoverlay=vc4-kms-v3d
So the release notes are incorrect.
Testing on a Raspberry 4 inside an Argon One case, as well as on a Raspberry Pi 400, full KMS causes pretty intense visual tearing when dragging windows:
dtoverlay=vc4-fkms-v3d
Testing on a Raspberry Pi 400, no such tearing occurs with full KMS disabled:
Just recognised that regardless of the confusing naming, the release notes are still incorrect:
The Raspberry Pi desktop images have switched to using the Full KMS graphics drivers. The official Raspberry Pi DSI display does not work with full KMS enabled. To enable the use of the Raspberry Pi DSI display, edit the config.txt file on your Raspberry Pi’s hard drive and change the line dtoverlay=vc4-fkms-v3d to dtoverlay=vc4-kms-v3d
However, fresh installs are set to dtoverlay=vc4-kms-v3d which as you said is Full KMS. As such those release notes should say:
The Raspberry Pi desktop images have switched to using the Full KMS graphics drivers. The official Raspberry Pi DSI display does not work with full KMS enabled. To enable the use of the Raspberry Pi DSI display, edit the config.txt file on your Raspberry Pi’s hard drive and change the line dtoverlay=vc4-kms-v3d (Full KMS) to dtoverlay=vc4-fkms-v3d (Fake KMS).
I believe the release notes author also shared the same confusion around naming that I had.
Does DSI mode magically change the value that Raspberry Pi Imager burns to the sd card? And inverse the meanings? As:
the value that is burned to the sd card is dtoverlay=vc4-kms-v3d (full kms, the new default, as expected)
the release notes say that display doesn’t support full kms, yet to get it to work, it says update the config.txt from fake kms to full kms…
The problem is the recommendation part of that release note section, it says set it to the value that it doesn’t support, and set it to the value it should already be.
Oh I see, thanks. If I’m not mistaken we need to change:
To enable the use of the Raspberry Pi DSI display, edit the config.txt file on your Raspberry Pi’s hard drive and change the line dtoverlay=vc4-fkms-v3d to dtoverlay=vc4-kms-v3ddtoverlay=vc4-kms-v3d to dtoverlay=vc4-fkms-v3d.
Argh, you’re absolutely right – my fingers switched the fkms and kms when typing the notes (I did know the correct definitions, but managed to transpose them when writing that paragraph, doh!). Now corrected.