Un noob sur NOOB : lancement de videos au démarrage

YATTAAAAAAAAAA !!! c’est bon je commence à aimer Linux et la joie trouver la solution avec l’aide des autres !!! Bref :

Non avec :
sudo mount -t cifs -o username=XXXXX,password=XXXXX //192.168.1.18/magasin /home/pi/Partage
cela ne fonctionne pas, pour que je puisse voir les fichier dans le NAS je suis obligé de faire comme suis :

sudo nano /root/.smbcredentials

username=XXXXXXX
password=XXXXXXX


sudo nano /etc/fstab

//192.168.1.18/Magasin/Video/Femme2 /home/pi/Partage cifs credentials=/root/.smbcredentials,iocharset=utf8,gid=1000,uid=1000,vers=1.0,_netdev	0	0


sudo mount -a

Puis :

sudo nano script-lecture-videos.sh

#!/bin/sh

# On efface le curseur de la souris de l'écran
setterm -cursor off

# On définit le chemin de stockage des vidéos
VIDEOPATH="/home/pi/Partage"

# On définit le service à utiliser, ici OMXPLAYER
SERVICE="omxplayer"

# On scanne en boucle le dossier
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        # le script plante parfois si la pause n'est pas assez longue
        sleep 100; 
else
        for entry in $VIDEOPATH/*
        do
                clear
                omxplayer -b $entry > /dev/null
        done
fi
done

le problème était que dès que je relançais le RPi, je ne voyait plus mes vidéos du NAS dans Partage, j’étais obligé de refaire manuellement sudo mount -a et là les vidéos ce lancais tout seul sur l’écran…

j’ai essayé de faire un script pour automatiser au démarrage le mount :

sudo nano script-automountall.sh

#!/bin/sh

sleep 10

sudo mount -a

Mais Jamy pourquoi « sleep 10 » ? Et bin Nabla parce que lorsque mon RPi ce lance il y a un temps de latence avant qu’il ne se connecte en Wifi et donc il lançait « mount -a » avant la connexion et donc ne trouvait rien !

Bref on continu :

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

bash script-lecture-videos.sh
bash script-automountall.sh


sudo chmod +x script-automountall.sh
sudo chmod +x script-lecture-videos.sh

sudo reboot

Et paff ça fait des chocapics dans le papier d’alu Maurice !

Parcontre pourrais tu m’expliqués cette commande en détaille s’il te plait ?

# On scanne en boucle le dossier
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        # le script plante parfois si la pause n'est pas assez longue
        sleep 100; 
else
        for entry in $VIDEOPATH/*
        do
                clear
                omxplayer -b $entry > /dev/null
        done
fi
done

Moi, je dis, vive le filaire :slight_smile:

Tu peux taper un man ps et tu auras les explications :wink:
Le « man » peut aider bien des fois.

ps → Affiche l’état des processus en cours.
a → Affiche les processus des autres utilisateurs.
x → Affiche les processus qui n’ont pas de terminal de contrôle.

Et Caetera

Edit :
Entre « man » et le site deepl.com tu peux en apprendre des choses.
Ainsi « grep » → DESCRIPTION
grep recherche dans les FICHIERS d’entrée nommés les lignes contenant une correspondance avec le PATTERN donné.
Si aucun fichier n’est spécifié, ou si le fichier « - » est donné, grep recherche l’entrée standard. Par défaut, grep imprime les lignes correspondantes.
En outre, les variantes des programmes egrep, fgrep et rgrep sont les mêmes que grep -E, grep -F et grep -r, respectivement.
Ces variantes sont sont dépréciés, mais sont fournis pour une rétrocompatibilité.

Traduit avec DeepL Translate: The world's most accurate translator

Pour parfaire ton système, tu pourras mettre une tâche cron pour éteindre ton Rpi à 19h30 (par exemple).
Comme ça, pas la peine de prendre la main en SSH.
Il te suffira d’appuyer sur un interrupteur (rallonge multiprise à interrupteur ou bricolage perso) pour couper le jus (inutile de laisser un transfo branché pour rien).
Et le lendemain/jour ouvré suivant, tu aura juste à appuyer sur l’interrupteur pour relancer le système.

Sinon, je viens de tester ceci :

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
point-rpi
bash script-test.sh

puis
sudo nano script-test.sh

#!/bin/bash

sudo mount -t cifs -o username=XXX,password=XXX //192.168.0.14/partage/videos-test /home/pi/Partage

vlc /home/pi/Partage/*

done

J’avais préalablement dit à VLC de se lancer en plein écran et j’avais coché « lecture en boucle ».

Et ça fait le job (j’ai téléchargé 3 vidéos de moins de 10 secondes Libres de Droits sur https://videos.pexels.com/ pour le test et elles tournent bien en boucle).

++

Tu n’as pas 2 boites de Oasys with Hydraclear Plus qui trainent ??? :smile:
(PWR : -6,50 et -5,50 ; BC : 8,80 ; DIA : 14,00)

En faite j’ai 7 écran en magasins qui sont controlé par 7 RPi, a cause de la configuration du mag je suis obligé de passer en Wifi sinon j’aurai eu beaucoup trop de frais… Le RPI ce lance le matin lorsque que l’on allume les lumières du mag et ce coupe de la même manière le soir, donc pas besoin de programmateur.

Merci encore !

Hello,
Coupure à l’arrach’ par arrêt d’alim ?
Pas bon ça.

C’est un magasin, l’électricité est fait comme cela hélas… Après rien ne m’empêche d faire un script pour les RPi à 19h00

Pour les lentilles en MP

@Shaitan

Salut,

J’ai travaillé pour toi ce soir.

Passage en « démarrer en mode console » depuis le menu de configuration.

Ensuite, le codage …

sudo mkdir /home/pi/Partage

sudo nano /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
  printf "************** Nabla est le meilleur **************"

sudo bash /home/pi/script-mini.sh

exit 0

sudo nano script-mini.sh

#!/bin/bash

sudo mount -t cifs -o username=XXXX,password=XXXX //192.168.0.14/partage/videos-test /home/pi/Partage

# On efface le curseur de la souris de l'écran
setterm -cursor off

# On définit le chemin de stockage des vidéos
VIDEOPATH="/home/pi/Partage"

# On définit le service à utiliser, ici OMXPLAYER
SERVICE="omxplayer"

# On scanne en boucle le dossier
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        # le script plante parfois si la pause n'est pas assez longue
        sleep 100; 
else
        for entry in $VIDEOPATH/*
        do
                clear
                omxplayer -b $entry > /dev/null
        done
fi
done

sudo chmod +x script-mini.sh

Sans oublier de faire un sudo raspi-config
3 Boot Options
B2 Wait for Network at Boot
Would you like boot to wait until a network connection is established? <Oui>
Waiting for network on boot is enabled <Ok>
<Finish>

Et sudo reboot

J’ai 3 vidéos libres de droits de 10 secondes environ.
Ça se lance bien au démarrage.
Je vois des lignes de codes entre la 1ère et la seconde (OmxPlayer se ferme et se rouvre).
Mais, ensuite, rien entre 02 et 03 puis rien entre toutes les suivantes (boucle de 01 à 03 et on recommence).

Bref, ça fonctionne.

Je dois préparer des Yaourts donc je m’arrête.
Je vais tester sur un Raspbian lite demain si je peux.

++

Edit :
L’avantage ou le défaut réside dans le fait que si le serveur est non accessible, tu as un écran noir et c’est tout.
Dans la version graphique, tu serais juste en bureau affiché et rien ne se passe.
A voir tes préférences.

Edit2 :
Je viens d’apprendre des trucs sur les conditions et j’ai modifié le script.

#!/bin/bash

if sudo mount -t cifs -o username=XXX,password=XXX //192.168.0.14/partage/videos-test /home/pi/Partage; then
         echo "Montage dossier distant = réussite"
else
        sudo poweroff
fi

# On efface le curseur de la souris de l'écran
setterm -cursor off

# On définit le chemin de stockage des vidéos
VIDEOPATH="/home/pi/Partage"

# On définit le service à utiliser, ici OMXPLAYER
SERVICE="omxplayer"

# On scanne en boucle le dossier
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        # le script plante parfois si la pause n'est pas assez longue
        sleep 10; 
else
        for entry in $VIDEOPATH/*
        do
                clear
                omxplayer -b $entry > /dev/null
        done
fi
done

Ce qui fait que SI tu as le réseau, alors le montage se fait puis tu lis les vidéos.
MAIS que SI tu N’a PAS le réseau, alors, le Rpi se coupe (poweroff)

Essais effectués = si le réseau est coupé pour le NAS et si le réseau est coupé pour le Rpi.
Dans les 2 cas, j’ai bien une extinction du Rpi.

Ce script pourra être amélioré, mais j’aime apprendre et proposer.

_P.S. : _
@jelopo --> pas hésiter à dire si c’est complétement débile comme proposition

Salut,

Petit retour de principe.
J’ai un peu rebossé dessus cette nuit et ce matin.

Après avoir installé une version Lite, j’ai juste un truc à ajouter :
ça fonctionne … à condition de faire un
sudo apt-get install omxplayer
Puisque dans la version Lite, il n’est pas installé :smile:

J’ai donc un démarrage rapide (je suis sur Rpi3B+) avec les vidéos en plein écran et juste un écran noir complet de même pas une seconde entre les vidéos.

++

Edit : Tuto fait --> voir MP

Edit2 : j’ai essayé de resister mais … la pathologie a gagné et j’ai dû le faire : installation faite sur un RpiZero V1.3
J’ai juste le RpiZero, une carte SD, un adaptateur USB vers RJ45 et c’est bon.
J’ai un lecteur fonctionnel avec un Rpi à 5,22 euros :slight_smile: (pas besoin de wifi chez moi).

dsl j’étais pas dispo en début de semaine, et je risque d’etre pris demain, je regarde tout cela ce week-end

Salut @Shaitan

À toutes fins utiles, pour simplifier l’extinction des Rpi et ne pas flinguer les cartes SD, tu as la possibilité de créer une tache cron comme je l’avais évoqué avant.

Mais tu peux aussi ajouter un bouton physique.
Une simple pression sur le bouton suffira à éteindre le Rpi sélectionné.

OK, ça oblige à accéder physiquement aux Rpi, mais ça peut aider.

(faut juste cacher le bouton pour que des imbéciles n’appuient pas dessus :slight_smile: )

J’ai testé et ça fonctionne impeccablement !

++

@Nabla
Hors sujet, mais j’ai pas résisté.

Arf, si ça fonctionne, c’est que tu as appuyé sur le bouton. :smile::smile::smile:

A+

Yo,
J’avoue que depuis hier soir soit dans la soirée + le début de nuit + la matinée = j’ai joué à merveille le rôle de l’imbécile !!! Tu as parfaitement raison :stuck_out_tongue_winking_eye:
D’ailleurs, j’ai pensé à toi : je vais revenir te poser des question car je me suis mis au python (enfin comme qd tu apprends à nager en sautant au milieu de l’Atlantique) et au GPIO et des trucs merdouilles.

Pour @Shaitan, j’ai eu du mal à me retenir = j’ai déjà tout mis par écrit dans un tuto :wink:

tout fonctionne nickel !!! Merci beaucoup voisin !