Ceci est une ancienne révision du document !
Raspberry Slideshow
Voir RS version CEMEA en-cours pour notes sur les essais de fonctionnaltiés en plus à implémenter
DONE, ce qui fonctionne
1) Télécharger le fichier
- la version gratuite proposée en téléchargement fonctionne, mais uniquement avec des fichiers installés sur une clef USB (images et vidéos)
- La version “payante” mais libre propose l'utilisation de documents trouvés sur le réseau (http ou partagés sur un serveur ou dans un cloud)
Voir les liens actifs ici : https://ladoc.cemea.org/doku.php?id=dsi:tv_diffus_raspberrys
2) Extraire le Zip
3) Avec BalenaEtcher ou autre logiciel, graver le fichier .img sur une carte micro SD
4) Puis l'insérer dans une Raspberry Pi et la redémarrer avec un cable réseau.
Prise en main
Utilisateur par défaut (compte sudo) : pi
Mot de passe : live
Par défaut la version démarre sur un diaporama, pour l'interrrompre, lors d'une transition passer sur une console avec Ctrl-alt F2 ou F3 et s'identifier avec le compte pi
(mdp : live
)
Puis taper :
sudo systemctl stop rs
Si on a l'IP du raspberry (par exemple à l'AN en regardant sur pfsense les lease DHCP), on peut se connecter dessus :
ssh pi@10.1.9.X
Numéro d'inventaire | IP à l'AN |
---|---|
83-17766-rpi1 | 10.1.9.209 |
83-17767-rpi2 | 10.1.9.207 |
83-17761-rpi3 | 10.1.9.208 |
83-17768-rpi4 | 10.1.9.210 |
Préparation
Quelques astuces avant de l'utiliser, en supposant que la connexion réseau est opérationnelle.
D'abord mettre à jour raspi-config (la version dans l'image rs-13.1-donors.img est assez vieille, les menus ne sont pas les mêmes). On fait la mise à jour à la main car raspi-config ne peut le faire lui même : la Suite de buster est passé de “testing” à “oldstable” (et oui, l'image date de quand buster était la testing, c'est pas tout récent).
(Bien penser à répondre “y” aux questions de changements de suite debian)
sudo apt update # Répondre y
1) lancer
sudo raspi-config
Choisir update raspi-config
avant de faire la suite
3) Options à activer depuis le menu raspi-config :
- 1 System Options :
- S2 : Audio : force headphone (si besoin de muet)
- S3 : changer le mot de passe de l'utilisateur pi;
- S4 : hostname : à personnaliser comme rpi1
- S6 : Network at boot ? No (disabled)
- 2 Display Options
- D1 : Résolution à changer si besoin ?
- 3 Interfaces Options :
- P2 SSH enable Yes : (si désactivé)
- 4 Performance Options :
- P2 : GPU Memory : 128 Mo
- 5 Localisation Options :
- L1 : Locale : fr_FR.UTF-8 (décocher “en”) et valider “fr_FR.UTF-8”
- L2 : Timezone : “Europe / Paris”,
- L3 : KeyBoard Layout : il va choisir automatiquement un keyboard layout adapté au français (donc AZERTY)
- 6 Advanced Options :
- A1 : “expand filesystem” pour augmenter la taille disponible au maximum sur la partition,
- A4 : Network Interface name Predictable : No (on conserve les noms eth0, wlan0..)
- 8 Update
- mettre à jour raspi-config : update
- Finish pour quitter
Et avant de redémarrer, afficher son IP et tester la connexion en ssh :
ssh pi@10.1.9.x
3) Lancer une mise à jour complète :
sudo apt update # vérifie les différences entre paquets locaux et distants sudo apt upgrade # mets à jour les nouveaux paquets sudo apt dist-upgrade # mets à jour les noyaux sudo apt autoremove # supprime les paquets "inutiles"
soit en une ligne :
sudo apt -y update && apt -y dist-upgrade && sudo apt -y autoremove
Ajout de configuration Réseau
Wifi en DHCP
Editer le fichier de config /etc/network/interfaces
et le remplacer par
source-directory /etc/network/interfaces.d
Ensuite, lancer
raspi-config
Et aller dans “System Options” > “Wireless LAN”, rentrer le SSID et le mot de passe
Wifi et IP statique
Remplacer le fichier /etc/network/interfaces par le simple contenu :
source-directory /etc/network/interfaces.d
Modifier /etc/wpa_supplicant/wpa_supplicant.conf
Et rajouter :
country=FR network={ ssid="SSIDdemonwifi" psk="Motdepasseduwifi" }
Puis dans /etc/dhcpcd.conf
, rajouter la config de l'IP fixe :
interface wlan0 static ip_address=192.168.5.201/24 static routers=192.168.5.1 static domain_name_servers=10.1.9.1
Puis lancer pour activer le dhcpcd (client DHCP)
sudo systemctl enable dhcpcd
Tester la connexion SSH à distance à travers le wifi par exemple.
ssh pi@192.168.5.201 # ou 202 - 203
Fonctionnement général
Placer les fichiers sur une clef USB à la racine (pas de sous-dossiers) et placer la clef dans le Raspberry-Slideshow.
Le programmeau démarrage vérifie si la clef USB contient des documents et les copie dans /var/lib/rs/
Puis il les affiche en continu. Depuis la version 13, la clef est démontée une fois les fichiers copiés.
Au second redémarrage, il n'est donc plus nécessaire de laisser la clef USB.
Configuration
Il est possible de paraméter certaines options dans le fichier /etc/rs.conf
(comme DEBUG=“y” pour voir les logs dans /var/log/rs.log
)
D'autres options d'accès sont paramétrables avec un fichier media.conf à placer dans la clef USB ou dans le dossier /var/lib/rs/
Les scripts se trouvent dans /usr/lib/rs/
Accéder au menu de configuration avec
raspi-config
La résolution de la tv de l'accueil est en 1920×1080 50Hz 16:9
SSH
La version gratuite n'a pas de SSH activé. Il faut l'activer avec raspi-config en local (ou en créant un fichier vide nommé ssh
à la racine de / depuis la carte SD par exemple)
Activation d'un splashscreen
Par défaut, le démarrage est verbeux. Solutions possibles :
https://yingtongli.me/blog/2016/12/21/splash.html
Dans /boot/cmdline.txt, compléter la ligne avec :
logo.nologo consoleblank=0 loglevel=1 quiet
Rajouter le fichier /etc/systemd/system/splashscreen.service
[Unit] Description=Splash screen DefaultDependencies=no After=local-fs.target [Service] ExecStart=/usr/bin/fbi -d /dev/fb0 --noverbose -a /opt/splash.png StandardInput=tty StandardOutput=tty [Install] WantedBy=sysinit.target
Copier le fichier splash voulu dans /opt/splash.png (à distance)
Activer le service
sudo systemctl enable splashscreen
Extinction automatique à certains moments (si besoin)
A heures précises, on peut éteindre le Raspberry. Mais il faudra le rallumer manuellement. (Voir procédure plus bas pour ne pas éteindre le raspberry).
sudo crontab -e
Et rajouter pour lancer l'extinction à 21h :
0 21 * * * /sbin/shutdown -P now
Extinction / allumage de l'affichage
https://www.instructables.com/id/Raspberry-Pi-Wall-Display-Without-X-Windows/
L'idéal est de ne pas l'éteindre, mais de mettre l'affichage en noir et de le relancer à une heure précise. C'est fait !
sudo nano /etc/crontab
0 18 * * * root systemctl stop rs.service && vcgencmd display_power 0 # arret de diffusion et extinction de l'écran à 18h 30 8 * * mon,tue,wed,thu,fri root vcgencmd display_power 1 && sleep 3 && systemctl start rs.service # allumage du lundi au vendredi 0 9 * * sun,sat root /sbin/reboot # reboot à 9h chaque samedi et dimanche matin
Et relancer le service cron pour le prendre en compte
sudo systemctl restart cron
Accès Partage réseau
Il est possible d'utiliser l'accès à un partage réseau pour déposer du contenu à diffuser
Il est nécessaire de créer un fichier sur la clef USB (ou ailleurs dans un fichier media.conf à créer dans /var/lib/rs/
), contenant par exemple :
# Fichiers statiques à ajouter url: https://www.binaryemotions.com/rs-default-media/verona.san-zeno.jpg url: https://www.binaryemotions.com/rs-default-media/verona.arena.jpg # Server-managed inventory : liste distante de fichiers serverlist: https://www.binaryemotions.com/rs-default-media/images.txt # Samba share : partage réseau smb.share: //ipserveur/partages/cemea-ffe/ressources/films smb.username: ffe smb.password: motdepasse # Dropbox key. dropbox: clef_personnelle_du_compte # Refresh time in seconds. refresh: 600
Cas de l'AN : définir un utilisateur dédié “tvaccueil” qui accèdera au dossier partagé “TV-Accueil”.
Editer le fichier /var/lib/rs/media.conf
# Samba share : partage réseau smb.share: //10.1.9.1/partages/TV-ACCUEIL/ smb.username: tvaccueil smb.password: motdepasse # Refresh time in seconds. refresh: 600
Et redémarrer le service rs :
systemctl restart rs
Réduire le temps d'affichage des infos réseau au démarrage
Modifier la valeur de 10 à 0 dans /etc/rs.conf
:
INFORMATIONAL_SCREEN_WAIT=0
Hack pour allonger délai
Rajouter dans /etc/rs.conf
# delay avant lancement du script pour prise en main BOOT_DELAY=120
Et dans /usr/lib/rs/rs.sh
après :
loadComponents
# ajout de delay if [ -z ${BOOT_DELAY x} ]; then sleep $BOOT_DELAY fi
Cacher le message d'affichage :
echo "Initializing, please wait...">/dev/tty1
Clavier en azerty en direct
sudo nano /etc/default/keyboard
Et remplacer “gb” par “fr” si ce n'est pas déjà le cas :
XKBLAYOUT="gb" XKBLAYOUT="fr"
Relancer manuellement le service
Voici les étapes à respecter pour relancer le diaporama :
systemctl stop rs # service qui diffuse le diaporama systemctl start rs # service qui relance le diaporama
Il est possible de consulter la liste des images diffusées en utilisant :
journalctl -u rs.service
Parcourir le fichier de log avec les flèches du clavier ou espace (pgdown) et “q” pour quitter le fichier.
Spécificités Fife
Rpi3 (devant salles)
Raspberry du jour pour diffusion devant les salles, tourne en boucle : Raspi du jour (branché sur l'écran du cinéma à côté du programme de films classiques)
IP : filaire et wifi : 192.168.3.110 - 192.168.95.7
À modifier si besoin
Voir https://gitlab.cemea.org/cemeasi/fife-diapos pour création des fichiers de listes, des dossiers des affiches … L'idée est la suivante :
- Le rPi est configuré pour récupérer un .txt au démarrage, et récupérer une liste de fichiers à partir de ça
- On a la main sur le serveur, en mettant à jour ce .txt, on sait qu'au prochain démarrage du rPi il récuperera les bons fichiers
- On configure le rPi pour reboot tous les matins à 8h, pour qu'il puisse récupérer les bons fichiers
- On évite le paramètre media.refresh de rpi slideshow, qui n'est pas bien fonctionnel, et fait que le rPi s'arrête de fonctionner en plein milieu de la journée sans raison
- Au besoin, si on veut forcer une modif à la main, il suffit de reboot le rPi
Configurer :
serverlist: http://fife-diapos.cemea.org/ecran-cinema.txt
Important ! Avec cette méthode, il faut donc le soir penser à mettre à jour le .txt sur le serveur fife-diapos (en changeant le lien symbolique, c'est détaillé dans le repo)
Modif de la crontab
sudo crontab -e
0 8 * * * /usr/sbin/reboot
Rpi4 : Raspi du jour (salle staff/VIP)
IP : wifi : 192.168.95.8
- planning du jour dans :
serverlist: https://fife-diapos.cemea.org/salle-staff.txt
Modif de la crontab
sudo crontab -e
0 8 * * * /usr/sbin/reboot