technique:raspberryslideshow

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

1) Télécharger le fichier

  • la version 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 docuements trouvés sur le réseau (http ou partagés sur un serveur)

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.

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

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 :

  • 1) changer le mot de passe (de l'utilisateur pi)
  • 2) Network : N1 : hostname : à personnaliser, N3 : Predictable : No
  • 3) Boot Options : B2 : Wait until Network ? No (disabled)
  • 4) Localisation : I1 : Locale : fr_FR.UTF-8 (décocher “en”) et validier “fr_FR.UTF-8”, I2 : Timezone : “Europe / Paris”, I3 : KeyBoard Layout : “Generic 102, Others/French” (puis options par défaut)
  • 5) Interfacing Options : SSH enable Yes : (si désactivé)
  • 7) Advanced Options : A1 : “expand filesystem” pour augmenter la taille disponible au maximum sur la partition, A3 : Memory : 128, A4 : Audio : force headphone (si besoin de muet)
  • 8) mettre à jour raspi-config : update
  • 9) 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

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

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

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.

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/

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)

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

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

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 && tvservice -o # arret de diffusion et extinction de l'écran à 18h
30 8 * * mon,tue,wed,thu,fri root tvservice -p && fbset -accel true; fbset -accel false && 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

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

Modifier la valeur de 10 à 0 dans /etc/rs.conf :

INFORMATIONAL_SCREEN_WAIT=0

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
sudo nano /etc/default/keyboard

Et remplacer “gb” par “fr” si ce n'est pas déjà le cas :

XKBLAYOUT="gb"
XKBLAYOUT="fr"

En cas de modification du code, voici les étapes à respecter pour relancer le diaporama :

systemctl stop raspitv # service qui vérifie et génère le nouveau planning s'il a changé
systemctl stop rs # service qui diffuse le diaporama
systemctl stop raspitv # service qui relance la génèrtion du nouveau planning et relance le diaporama

Pour info, par défaut, le nouveau plnning est généré sous forme d'image “planning.png” dans le dossier /var/lib/rs/

Le fichier planning.html est aussi le fichier final généré avant transformation en image.

  • technique/raspberryslideshow.1610562205.txt.gz
  • Dernière modification : 2021/01/13 19:23
  • de francoisa