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
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.
1) lancer
sudo raspi-config
Utilisateur par défaut (compte sudo) : pi
Mot de passe : live
2) 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 : “Generic 102, Others/French” (puis options par défaut)
- 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
Méthode manuelle pour Wifi en client DHCP
Editer le fichier de config /etc/network/interfaces
et rajouter :
# wlan auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid "MON-SSID" wpa-psk "mot-de-passe"
Et reboot
Méthode manuelle avec IP fixe en wifi
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.