Skip to content

[Feature Request] Expose current scanout framebuffer for screenshot/grabber tools on Raspberry Pi 5 (VC6 DRM/KMS) #6860

@cpthein

Description

@cpthein

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions