-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
Describe the bug
Summary
This is a feature request for Raspberry Pi 5 devices using the VC6 DRM/KMS driver.
We are developing screenshot and grabbing tools (e.g. for Hyperion Ambilight) that rely on reading the current scanout framebuffer for real-time image analysis. This has previously been possible using DRM/KMS APIs on earlier platforms, but appears to be restricted on the Raspberry Pi 5 with VC6.
Problem Description
On the Raspberry Pi 5 (LibreELEC 12, Kernel 6.6.x, VC6 driver with KMS), attempts to access the active plane's framebuffer using DRM APIs such as drmModeGetPlane()
or drmModeMapDumb()
fail with:
Steps to reproduce the behaviour
This prevents tools like Hyperion or custom grabbers from accessing the screen content, which was previously possible on Pi 4 or other DRM platforms.
Suggested Solution
We propose introducing a mechanism that allows tools to access or export the scanout framebuffer. Possible options include:
- Exposing a device like
/dev/scanout-export
that exports the current buffer as a DMA-BUF - Allowing read access to the active scanout framebuffer via
drmModeMapDumb
or similar - Adding an ioctl to request the framebuffer handle (with appropriate restrictions)
- Providing an official method to clone the scanout plane for read-only access
Use Case
- Screenshot generation (e.g. for remote display tools)
- Ambilight-style real-time processing (e.g. Hyperion)
- Visual monitoring/debugging of rendered output
These tools are widely used in home automation and multimedia contexts and would greatly benefit from access to the visible framebuffer.
Additional Notes
- We understand that security and memory coherence are important concerns.
- Access could be restricted to CAP_SYS_ADMIN or to whitelisted tools.
- We are open to contributing or testing kernel patches if guidance is provided.
System Info
- Platform: Raspberry Pi 5
- OS: LibreELEC 12.0.2 (64-bit)
- Kernel: Linux 6.6.x
- Graphics: KMS, VC6
Device (s)
Raspberry Pi 5
System
- Platform: Raspberry Pi 5
- OS: LibreELEC 12.0.2 (64-bit)
- Kernel: Linux 6.6.x
- Graphics: KMS, VC6
Logs
No response
Additional context
No response