[Bug 2128161] Re: pi-kernel VC4-KMS not working with CM5
Justin Ayers
2128161 at bugs.launchpad.net
Mon Nov 3 17:59:43 UTC 2025
Thank you for providing that vclog file
Using your vclog binary, I found that vc4-pi5 overlay does NOT appear in
the bootloader log (see full output below):
**vclog output shows:**
- Loaded overlay 'bcm2712d0' ✓
- Loaded overlay 'dwc2' ✓
- NO 'vc4-pi5' mentioned
**My config.txt has:**
dtoverlay=dwc2,dr_mode=host
dtoverlay=vc4-pi5
dtoverlay=dwc2
**System details:**
- Ubuntu Core 24, pi-kernel 6.8.0-1039.43 (snap 1047), 24/stable
- Raspberry Pi 5 Model B Rev 1.1, 16GB RAM
- File exists: /run/mnt/ubuntu-seed/overlays/vc4-pi5.dtbo (3.3KB)
**Additional symptoms:**
- dmesg shows bcm2708_fb (legacy framebuffer) errors
- vclog starts at 13726ms, missing early boot (0-7000ms where your log shows overlays loading)
- I CAN see vc4-pi5 mentioned during visible boot splash, but it doesn't appear in vclog output
**Questions:**
1. Does vclog only show a limited buffer? Your log starts at 0.57ms, mine starts at 13726ms
2. How can I capture the complete bootloader log including the 0-7 second range where overlays load?
3. Is there a difference between 8GB and 16GB Pi 5 models that affects overlay loading?
4. I think you answered this and only mentioned "classic" because you verified classis does not do that but Could you confirm you tested on Ubuntu Core 24 (not classic Ubuntu)?
5. How much memory does the pi5 have that you are using? Mine has 16GB ram. This should not matter but I know there are some minor differences.
I've added some various outputs below that may be useful. please let me
know of anything else you may need. I'm happy to help.
when I run the following commands
```
# First, verify the short-named overlay file exists
ls -lh /run/mnt/ubuntu-seed/overlays/vc4-pi5.dtbo
# Verify config.txt has the short overlay name
grep "vc4-pi5" /run/mnt/ubuntu-seed/config.txt
# Now check if the device tree changed - compare specific properties
# The developer's bootloader log shows "Loaded overlay 'vc4-pi5'" at 7.83 seconds
# If it loaded, certain device tree properties should exist
# Check if the overlay added any fragment markers
find /sys/firmware/devicetree/base/ -name "*fragment*" 2>/dev/null
# Check the actual vc4 node structure
ls -la /sys/firmware/devicetree/base/axi/gpu/
# Most importantly - are the nodes STILL disabled after using the short name?
echo "=== HDMI0 status ==="
cat /sys/firmware/devicetree/base/soc/hdmi at 7ef00700/status
echo "=== HDMI1 status ==="
cat /sys/firmware/devicetree/base/soc/hdmi at 7ef05700/status
echo "=== HVS status ==="
cat /sys/firmware/devicetree/base/hvs at 107c580000/status
echo "=== Pixelvalve0 status ==="
cat /sys/firmware/devicetree/base/soc/pixelvalve at 7c410000/status 2>/dev/null || echo "not found"
# Check if /dev/dri exists now
echo "=== DRM device ==="
ls -la /dev/dri/ 2>&1
# Check if vc4 bound to anything
echo "=== VC4 module usage ==="
lsmod | grep vc4
# Check for any vc4 messages in dmesg
echo "=== DMESG VC4 ==="
sudo dmesg | grep -i vc4
```
I get the results
```
-rwxr-xr-x 1 root root 3.3K Oct 31 17:58 /run/mnt/ubuntu-seed/overlays/vc4-pi5.dtbo
dtoverlay=vc4-pi5
total 0
drwxr-xr-x 2 root root 0 Nov 3 17:13 .
drwxr-xr-x 25 root root 0 Nov 3 15:51 ..
-r--r--r-- 1 root root 19 Nov 3 17:13 compatible
-r--r--r-- 1 root root 4 Nov 3 17:13 name
-r--r--r-- 1 root root 4 Nov 3 17:13 phandle
=== HDMI0 status ===
disabled=== HDMI1 status ===
disabled=== HVS status ===
disabled=== Pixelvalve0 status ===
disabled=== DRM device ===
ls: cannot access '/dev/dri/': No such file or directory
=== VC4 module usage ===
vc4 479232 0
snd_soc_core 376832 2 vc4,snd_soc_hdmi_codec
drm_display_helper 225280 1 vc4
cec 90112 2 vc4,drm_display_helper
drm_dma_helper 24576 1 vc4
=== DMESG VC4 ===
```
Here are my actual vclogs
```
$ sudo ./vclog --msg | head -100
013726.220: Initial voltage 800000 temp 38379
013926.653: avs_2712: AVS pred 9033 903300 temp 37280
013930.262: vpred 903 mV +0
013938.916: FB framebuffer_swap 1
013940.785: Select resolution HDMI0/2 hotplug 0 max_mode 2
013947.675: Select resolution HDMI1/2 hotplug 1 max_mode 2
013954.595: FB0 disp 1 max-fb 1 1920x1080 stride 3840 base 0x3f800000
016111.255: dtb_file 'bcm2712-rpi-5-b.dtb'
016540.052: Loaded overlay 'bcm2712d0'
016811.573: dtparam: audio=on
016820.348: Unknown dtparam 'audio' - ignored
016823.259: dtparam: i2c_arm=on
016839.346: dtparam: spi=on
017062.159: Loaded overlay 'dwc2'
020594.266: BSC_A no ACK
020595.497: BSC_A no ACK
020599.422: BSC_A no ACK
020648.153: Starting OS 20648 ms
020653.762: 00000040: -> 00000480
020655.611: 00000030: -> 00100080
020660.324: 00000034: -> 00100080
020665.036: 00000038: -> 00100080
020669.749: 0000003c: -> 00100080
020779.321: sdram: sdram refresh 2081->4162 (2)
080752.549: initial_turbo of 60 deactivated
```
These are the actual errors i get in my journal logs.
```
$ sudo journalctl -b 0 -u snap.*
Nov 03 15:51:59 localhost systemd[1]: Started snap.ubuntu-frame.daemon.service - Service for snap application ubuntu-frame.daemon.
Nov 03 15:51:59 localhost systemd[1]: Started snap.wpe-webkit-mir-kiosk.daemon.service - Service for snap application wpe-webkit-mir-kiosk.daemon.
Nov 03 15:51:59 localhost systemd[1]: Started snap.wpe-webkit-mir-kiosk.restart-watcher.service - Service for snap application wpe-webkit-mir-kiosk.restart-watcher.
Nov 03 15:52:01 localhost ubuntu-frame.daemon[1648]: ++ snapctl get display
Nov 03 15:52:01 localhost wpe-webkit-mir-kiosk.restart-watcher[1482]: Wayland socket not available, waiting one second
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + '[' -z '' ']'
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1723]: + initialise-display-config
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1724]: + sh -c 'sleep 5; mkdir "/run/user/007"; rmdir "/run/user/007"'
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + disown
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + exec nohup /snap/ubuntu-frame/17237/bin/run-frame /snap/ubuntu-frame/17237/bin/gpu-2404-wrapper /snap/ubuntu-frame/17237/usr>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + [ /snap/ubuntu-frame/17237/bin/gpu-2404-wrapper = --help ]
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1731]: + dirname /run/user/0/snap.ubuntu-frame
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1726]: Setting up watches.
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1726]: Watches established.
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + XDG_RUNTIME_DIR=/run/user/0
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + export XDG_RUNTIME_DIR
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + mkdir -p /run/user/0 -m 700
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + [ -n ]
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: + exec /snap/ubuntu-frame/17237/bin/gpu-2404-wrapper /snap/ubuntu-frame/17237/usr/local/bin/frame
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1770]: /snap/ubuntu-frame/17237/gpu-2404/bin/gpu-2404-provider-wrapper: line 27: cd: /snap/ubuntu-frame/17237/gpu-2404/bin/../X11/loc>
Nov 03 15:52:02 localhost wpe-webkit-mir-kiosk.daemon[1472]: WARNING: audio-playback interface not connected! Please run: /snap/wpe-webkit-mir-kiosk/current/bin/setup.sh
Nov 03 15:52:02 localhost wpe-webkit-mir-kiosk.daemon[1786]: Setting up watches.
Nov 03 15:52:02 localhost wpe-webkit-mir-kiosk.daemon[1786]: Watches established.
Nov 03 15:52:02 localhost wpe-webkit-mir-kiosk.restart-watcher[1482]: Wayland socket not available, waiting one second
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.829251] <information> mirserver: Starting
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.835781] < - debug - > mirserver: Using Linux VT subsystem for session management
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.837674] <information> mircommon: Loading modules from: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.837870] <information> mircommon: Loading module: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu/mir/s>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.837950] <information> mircommon: Loading module: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu/mir/s>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.837991] <information> mircommon: Loading module: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu/mir/s>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.838013] <information> mircommon: Loading module: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu/mir/s>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.838031] <information> mircommon: Loading module: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu/mir/s>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.838047] <information> mircommon: Loading module: /snap/ubuntu-frame/17237/usr/lib/aarch64-linux-gnu/mir/s>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.842787] <information> mirserver: Found display driver: mir:x11 (version 2.23.0)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.844884] <information> mirserver: (Unsupported by system environment)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.845742] <information> mirserver: Found display driver: mir:egl-generic (version 2.23.0)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.846459] <information> mirserver: Found display driver: mir:gbm-kms (version 2.23.0)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.846973] <information> gbm-kms: Unsupported: No DRM devices detected
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.847080] <information> mirserver: (Unsupported by system environment)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.847946] <information> mirserver: Found display driver: mir:eglstream-kms (version 2.23.0)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.854317] < - debug - > eglstream: Found EGLDeviceEXT with device extensions: EGL_MESA_device_software EGL_>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.854884] <information> eglstream: Failed to query DRM node for EGLDevice: Failed to determine DRM device n>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.854950] < - debug - > eglstream: EGLDeviceEXTs found, but none are suitable for Mir
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.854975] <information> mirserver: (Unsupported by system environment)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.855651] <information> mirserver: Found display driver: mir:atomic-kms (version 2.23.0)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.855901] <information> atomic-kms: Unsupported: No DRM devices detected
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: [2025-11-03 15:52:02.855925] <information> mirserver: (Unsupported by system environment)
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: ERROR: ./src/server/graphics/default_configuration.cpp(200): Throw in function virtual const std::vector<std::shared_ptr<mir::>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: Dynamic exception type: boost::wrapexcept<std::runtime_error>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: std::exception::what: Exception while creating graphics platform
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: ERROR: ./src/server/graphics/platform_probe.cpp(250): Throw in function std::vector<std::pair<mir::graphics::SupportedDevice, >
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: Dynamic exception type: boost::wrapexcept<std::runtime_error>
Nov 03 15:52:02 localhost ubuntu-frame.daemon[1468]: std::exception::what: Failed to find any platforms for current system
Nov 03 15:52:02 localhost systemd[1]: snap.ubuntu-frame.daemon.service: Main process exited, code=exited, status=1/FAILURE
Nov 03 15:52:02 localhost systemd[1]: snap.ubuntu-frame.daemon.service: Failed with result 'exit-code'.
Nov 03 15:52:02 localhost systemd[1]: snap.ubuntu-frame.daemon.service: Consumed 1.606s CPU time.
Nov 03 15:52:03 localhost wpe-webkit-mir-kiosk.restart-watcher[1482]: Wayland socket not available, waiting one second
```
Here are all of my snaps on my setup
```
$ sudo snap list
Name Version Rev Tracking Publisher Notes
console-conf 24.04.1+git45g5f9fae19+g7598200 80 24/stable canonical** -
core22 20250923 2140 latest/stable canonical** base
core24 20251001 1226 latest/stable canonical** base
libinput 22.04 91 latest/stable alangriffiths* -
mesa-2404 24.2.8-snap185 917 latest/stable canonical** -
mesa-core22 23.2.1 500 latest/stable canonical** -
pi 24-3 151 24/stable canonical** gadget
pi-kernel 6.8.0-1039.43 1047 24/stable canonical** kernel
snapd 2.72 25585 latest/stable canonical** snapd
ubuntu-frame 393-mir2.23.0 17237 24/stable canonical** -
wpe-webkit-mir-kiosk 2.38.5 104 22/stable glancr -
```
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rpi-eeprom in Ubuntu.
https://bugs.launchpad.net/bugs/2128161
Title:
pi-kernel VC4-KMS not working with CM5
Status in canonical-kernel-snaps:
Invalid
Status in linux-raspi package in Ubuntu:
Invalid
Status in rpi-eeprom package in Ubuntu:
New
Bug description:
Hello!
After switching from PI4B to CM5 on core24 stopped working vc4 driver.
PiOS (trixie) working with CM5 too.
On Raspberry Pi 4B by sudo dmesg | grep vc4:
[ 3.496362] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[ 3.500184] rc rc0: vc4-hdmi-0 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[ 3.500322] input: vc4-hdmi-0 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input0
[ 3.506345] input: vc4-hdmi-0 HDMI Jack as /devices/platform/soc/fef00700.hdmi/sound/card0/input1
[ 3.507075] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[ 3.512241] rc rc1: vc4-hdmi-1 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[ 3.512368] input: vc4-hdmi-1 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input2
[ 3.518685] input: vc4-hdmi-1 HDMI Jack as /devices/platform/soc/fef05700.hdmi/sound/card1/input3
[ 3.518919] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[ 3.519244] vc4-drm gpu: bound fe004000.txp (ops vc4_txp_ops [vc4])
[ 3.519461] vc4-drm gpu: bound fe206000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 3.519618] vc4-drm gpu: bound fe207000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 3.519762] vc4-drm gpu: bound fe20a000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 3.519870] vc4-drm gpu: bound fe216000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 3.520029] vc4-drm gpu: bound fec12000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 3.527520] [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 0
[ 3.528322] vc4-drm gpu: [drm] Cannot find any crtc or sizes
[ 3.530767] vc4-drm gpu: [drm] Cannot find any crtc or sizes
[ 3.531094] vc4-drm gpu: [drm] Cannot find any crtc or sizes
On Compute module 5 vc4 not loading (sudo dmesg | grep vc4 empty, sudo
dmesg | grep fb):
[ 7.050579] bcm2708_fb soc:fb: Unable to determine number of FBs. Disabling driver.
[ 7.058623] bcm2708_fb: probe of soc:fb failed with error -2
Two boards have (snap list):
Name Version Rev Tracking Publisher Notes
console-conf 24.04.1+git45g5f9fae19+g7598200 80 24/stable canonical** -
core24 20250829 1197 latest/stable canonical** base
mesa-2404 24.2.8-snap185 917 latest/stable canonical** -
pi 24-3 151 24/stable canonical** gadget
pi-kernel 6.8.0-1039.43 1047 24/stable canonical** kernel
snapd 2.71 25205 latest/stable canonical** snapd
ubuntu-frame 211-mir2.20.1 12494 24/stable canonical** -
Linux kernel:
Linux localhost 6.8.0-1039-raspi #43-Ubuntu SMP PREEMPT_DYNAMIC Tue
Sep 9 12:15:05 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
config.txt:
dtoverlay=vc4-kms-v3d
Is there a solution to make VC4-KMS work on core24?
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-kernel-snaps/+bug/2128161/+subscriptions
More information about the foundations-bugs
mailing list