🛠 Affichage numérique : kiosk double HDMI 4Kp60 sur CM4

Raspberry Pi Compute Module 4 (CM4, 2020) — Fiche de carte · avance · Schéma : IMG-compute-module-4-avance-3-kiosk-double-hdmi-cm4.svg — CM4 sur IO Board avec deux écrans HDMI 2.0 côte à côte affichant un tableau de bord plein écran ; le décodage vidéo 4Kp60 (HEVC) du VideoCore VI est indiqué sur le module.

Objetivos

La CM4 es la placa Pi con más interfaces de visualización: doble HDMI 2.0 hasta 4Kp60, 2 × MIPI DSI, 2 × CSI y DPI paralelo. Este tutorial construye un verdadero cliente de señalización digital (digital signage): dos pantallas en modo kiosco, reproducción de vídeo 4K acelerada (decodificación HEVC 4Kp60 por hardware del BCM2711), sesión que se reinicia sola — el caso de uso al que apuntaba el artículo de lanzamiento (« over half of the seven million Raspberry Pi units we sell each year go into industrial and commercial applications »).

Hardware

Código completo

# 1) Forcer 4Kp60 sur les deux sorties (config.txt)
sudo tee -a /boot/firmware/config.txt >/dev/null <<'EOF'
hdmi_force_hotplug:0=1
hdmi_force_hotplug:1=1
hdmi_group:0=1
hdmi_mode:0=97
hdmi_group:1=1
hdmi_mode:1=97
EOF
sudo reboot

# 2) Kiosque double écran sous labwc (Wayland)
sudo apt install -y labwc chromium cage
mkdir -p ~/.config/labwc
cat > ~/.config/labwc/autostart <<'EOF'
chromium --kiosk --noerrdialogs --disable-session-crashed-bubble \
  --window-position=0,0 --window-size=3840,2160 http://signage.local/ &
EOF

# 3) Session systemd qui relance le kiosque et l'écran de veille vidéo
sudo systemctl --user enable --now labwc

# 4) Test de décodage matériel 4K
mpv --hwdec=vaapi --loop http://tests.local/uhd_2160p_4k_hevc_10bit.mp4

Verificación esperada

wlr-randr (o xrandr --query bajo X11) muestra HDMI-0 y HDMI-1 conectados a 3840×2160 a 60 Hz; la página del kiosco ocupa las dos pantallas; durante el vídeo 4K, vcgencmd measure_temp sube pero vcgencmd get_throttled permanece en 0x0 con un disipador; tras kill de un chromium, el kiosco vuelve solo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales