Une Raspberry Pi qui :
* démarre automatiquement en bureau X11 ; * monte toute clé USB branchée ; * scanne les vidéos (.mp4, .mov, .mkv, .avi, …) ; * les lit en plein écran et en boucle avec `mplayer` ; * sans intervention manuelle.
—
* Raspberry Pi + alimentation + câble HDMI + écran * Carte micro-SD ≥ 16 Go * Un PC/Mac pour flasher l’OS * Clé USB contenant des vidéos
—
Méthode simple : Raspberry Pi Imager
1. Installer Raspberry Pi Imager sur votre PC/Mac. 2. Choisir l’OS : Raspberry Pi OS (Desktop) (Bookworm). 3. Cliquer sur ⚙️ et préconfigurer :
4. Flasher la carte SD et l’insérer dans la Pi.
Notes
* Pour un affichage plus “classique” X11, on utilisera `lightdm + openbox` (on l’installe plus bas). * Si l’écran ne “réveille” pas le HDMI, voir la section HDMI/Écran à la fin.
—
Allumer la Pi (HDMI branché). Depuis un autre poste :
# Remplacez l'IP si besoin ssh pi@192.168.x.y
Configurer base système :
# Mises à jour sudo apt update && sudo apt full-upgrade -y # (Optionnel) Locales/Clavier/Timezone si non faits dans l’imager sudo raspi-config # System Options > Locale / Timezone / Keyboard
Astuce : l’IP de la Pi est visible sur votre box/routeur ou via `arp -a`/`nmap`.
—
==== 3) Installer les paquets nécessaires ====
sudo apt install -y mplayer udevil lightdm openbox x11-xserver-utils
* mplayer : lecteur vidéo. * udevil : montage automatique des périphériques USB (via `devmon`). * lightdm + openbox : bureau X11 léger + autologin. * x11-xserver-utils : utilitaires X (ex. `xset`).
Activer l’affichage graphique au boot + autologin :
sudo systemctl enable --now lightdm # Si l’autologin n’est pas actif : sudo raspi-config # System Options > Autologin > Desktop Autologin
—
Créer l’autostart (démarre dans la session X) :
mkdir -p ~/.config/autostart cat > ~/.config/autostart/devmon.desktop <<'EOF' [Desktop Entry] Type=Application Name=devmon Exec=/usr/bin/devmon --no-gui X-GNOME-Autostart-enabled=true EOF
Vérifier après login graphique :
pgrep -a devmon # → doit afficher un /usr/bin/devmon --no-gui
Les clés seront montées sous `/media/pi/<LABEL>`.
—
mkdir -p ~/.local/bin ~/.local/share cat > ~/.local/bin/wait-x <<'EOF' #!/usr/bin/env bash set -euo pipefail export DISPLAY="${DISPLAY:-:0}" export XAUTHORITY="${XAUTHORITY:-$HOME/.Xauthority}" for i in {1..60}; do if xset q >/dev/null 2>&1; then exit 0; fi sleep 0.5 done exit 1 EOF chmod +x ~/.local/bin/wait-x
—
Ce script :
* scanne `/media/$USER` (max profondeur 3) ; * joue TOUTE vidéo trouvée en boucle plein écran ; * relance le scan si mplayer s’arrête (clé retirée/changée…).
sudo tee /usr/local/bin/usb-mplayer-autoplay.sh >/dev/null <<'EOF' #!/usr/bin/env bash set -euo pipefail LOG="$HOME/.local/share/usb-mplayer.log" echo "[usb-mplayer] start $(date)" > "$LOG" scan_files() { mapfile -d '' FILES < <(find "/media/$USER" -maxdepth 3 -type f -iregex '.*.(mp4|mov|mkv|m4v|avi|mpg|mpeg|wmv)' ! -name '._*' ! -name '.DS_Store' -print0 2>/dev/null || true) } while true; do scan_files n="${#FILES[@]}" if [ "$n" -eq 0 ]; then echo "[usb-mplayer] no files yet, rescanning..." | tee -a "$LOG" sleep 5 continue fi echo "[usb-mplayer] playing $n file(s)" | tee -a "$LOG" # Xv = voie vidéo la plus stable sur Pi (fallback ALSA en audio) /usr/bin/mplayer -fs -loop 0 -quiet -vo xv -ao alsa "${FILES[@]}" || true echo "[usb-mplayer] mplayer exited ($?), rescanning..." | tee -a "$LOG" sleep 1 done EOF sudo chmod +x /usr/local/bin/usb-mplayer-autoplay.sh
—
Lance l’autoplay dès que la session graphique est prête (après autologin).
mkdir -p ~/.config/systemd/user cat > ~/.config/systemd/user/usb-mplayer.service <<'EOF' [Unit] Description=USB autoplay with mplayer After=graphical-session.target Wants=graphical-session.target [Service] ExecStart=/bin/bash -lc '~/.local/bin/wait-x && /usr/local/bin/usb-mplayer-autoplay.sh' Restart=always RestartSec=3 [Install] WantedBy=default.target EOF # Activer et démarrer systemctl --user enable --now usb-mplayer.service
(Optionnel mais utile sur systèmes multi-sessions ou sans autologin :)
sudo loginctl enable-linger pi
—
* Brancher une clé USB avec vidéos. * Vérifier le montage :
ls /media/pi
* Vérifier le service :
systemctl --user status usb-mplayer tail -n 80 ~/.local/share/usb-mplayer.log
* Vous devez voir les vidéos plein écran et en boucle.
Remplacer la clé USB : éteindre la Pi, mettre la nouvelle clé, rallumer. Le script rescannera et jouera le nouveau contenu.
—
* Écran noir / rien ne se lance
systemctl status lightdm
systemctl --user status usb-mplayer
tail -n 80 ~/.local/share/usb-mplayer.log
* Clé non montée
pgrep -a devmon
* Problème audio
* Certaines vidéos ne passent pas
sudo apt install -y ffmpeg
—
Si l’écran ne s’enclenche pas au boot (hotplug capricieux), ajouter dans `/boot/firmware/config.txt` :
sudo tee -a /boot/firmware/config.txt >/dev/null <<'EOF' # Force HDMI même sans détection hdmi_force_hotplug=1 # Sortie audio HDMI hdmi_drive=2 # 1080p60 hdmi_group=1 hdmi_mode=16 EOF
Redémarrer :
sudo reboot
.
—
* Logs :
tail -f ~/.local/share/usb-mplayer.log
* Redémarrer le lecteur :
systemctl --user restart usb-mplayer
* Désactiver l’autoplay :
systemctl --user disable --now usb-mplayer
—
* À chaque démarrage, la Pi ouvre une session graphique. * `devmon` monte automatiquement la clé USB. * Le service usb-mplayer scanne et lit toutes les vidéos en boucle plein écran. * Changer de clé → redémarrer → nouveau contenu joué.