Connection options for front-panel display

  • Hello,

    I'm interested in extending kodi_panel to use more than just SPI-connected panels. I'd like to be able to use an IPS panel (better colors, wider viewing angles), and I've picked up an RPi 4. I'm unsure what direction to pursue for connectivity -- DSI, DPI, or HDMI.

    To clarify my intent, I'm not interested in dynamically switching the role of the displays. The primary HDMI output (which, for lack of additional knowledge, I'll call fb0) is always for Kodi's use, connected to an AVR and 4k TV. Audio for movies would also make use of that HDMI connection, while 2-channel music makes use of a USB-attached DAC (thanks to the Audio Profiles addon).

    I'm also not interested in running X (even for fb1). I'm content to render the front panel image using Pillow and, ideally, handle touchscreen events in kodi_panel as well -- all in user-space Python. (Hopefully all of that actually works!)

    Of particular concern is whether fb0 retains hardware-acceleration and whether fb0 remains independent (with regard to resolution, color depth, display freq) from the front-panel display. The front-panel display would be limited to something like 480x800 resolution (with 24b color depth). I'm not looking for a 4k 10" front panel. Well, not yet. :)

    So, on to some general questions...

    • According to this raspberrypi.org page, using the DPI interface does not require any additional drivers, just the passing of options (format, timing, display resolution) via Device Tree overlays. Does that mean that a standard LE installation can support a DPI display out-of-the-box? If a DPI display is attached, does that leave the main HDMI display (fb0) functional and HW-accelerated for Kodi's use?
    • MIPI-DSI is available on both RPi and Khadas boards. It would seem to require kernel module support, though, with (from the little I've read) a display controller-specific driver. Are any of those even present within the LibreELEC kernel?
      • If none of the modules are present in the standard LE image, is there a mechanism for compiling them short of building all of the LE kernel?
    • How about the RPi4's second HDMI interface (which I'll call fb1)? Can it be active and independent from fb0? Again, I'm not trying to "steer" Kodi there or extend Kodi across both displays. (Kodi shouldn't need to know that fb1 even exists, really.) Some of these short discussion threads seem more promising than others:

    Hopefully, the "lift" for any prerequisites can be kept fairly light. I'd still like to run LibreELEC / CoreELEC, since the widget's role is just an HTPC.

    Any thoughts on which connection method has the most longevity? HDMI seems the obvious choice, but I'm concerned that fb0 and fb1 aren't completely independent. I only recently realized that DSI is available on the Khadas boards, so that did raise my interest some.

    Finally, on a semi-related note, does LibreELEC support installing Entware or is that just a CoreELEC (convenience) feature?

    Thanks for any discussion! Regards,

    Matt

  • MIPI-DSI is available on both RPi and Khadas boards. It would seem to require kernel module support, though, with (from the little I've read) a display controller-specific driver. Are any of those even present within the LibreELEC kernel?

    The linux.arm.conf file for libreelec-9.2 does have CONFIG_DRM_MIPI_DSI set to y.

    LibreELEC.tv/linux.arm.conf at afbc010651246a9e0415a708864e47dea2348052 · LibreELEC/LibreELEC.tv · GitHub

    I don't know what other device drivers might be needed, though. The setup seems the same for the current master and Linux 5.9.2.