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

Raspberry Pi Compute Module 4 (CM4, 2020) — Fiche 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.

Objectifs

Le CM4 est la carte Pi avec le plus d'interfaces d'affichage : double HDMI 2.0 jusqu'à 4Kp60, 2 × MIPI DSI, 2 × CSI et DPI parallèle. Ce tuto construit un vrai client d'affichage numérique (digital signage) : deux écrans en mode kiosque, lecture vidéo 4K accélérée (décodage HEVC 4Kp60 matériel du BCM2711), session qui redémarre toute seule — le cas d'usage que l'article de lancement visait (« over half of the seven million Raspberry Pi units we sell each year go into industrial and commercial applications »).

Matériel

Code complet

# 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

Vérification attendue

wlr-randr (ou xrandr --query sous X11) montre HDMI-0 et HDMI-1 connectés en 3840×2160 à 60 Hz ; la page kiosque occupe les deux écrans ; pendant la vidéo 4K, vcgencmd measure_temp monte mais vcgencmd get_throttled reste à 0x0 avec un dissipateur ; après kill d'un chromium, le kiosque revient tout seul.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels