[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