Au menu : PHP - SHELL - FBI & OMXPlayer - RPi

Bonjour,

Je m’adresse à vous car je suis dans l’impasse… J’essaie de piloter, à distance un script shell qui lance omxplayer, puis fbi, puis omxplayer (enfin une playlist quoi). Gros problème, je sait qu’il y a des droits à donner pour vchiq pour une utilisation poussé de OMXPlayer, mais je ne sais pas quoi faire pour fbi. En effet, je lance mon script de lecture en interne, et tout va bien. Ma playlist se lit correctement etc…
Mais quand je lance cela depuis mon client. Nada. Rien ne fonctionne. Omx se lance, et c’est comme si il ne prenait pas en compte la ligne contenant la commande fbi.

Bon, soyons un peu plus clair, là c’est flou.

Ma page php qui lance mon script (nommé script.sh --> A noter l’originalité du nom) :

[quote]<?php
$recu = array(“test.mp4”, “test.jpg”, “test.mp4”, “test.mp4”, “test.jpg”, “moi.png”);
$file = fopen(“script.sh”,“w”);
fwrite($file,"#!/bin/sh\nsetterm -term xterm -cursor off -clear -blank 0 -powersave off -powerdown 0 >/dev/tty1\n");
foreach($recu as &$nom)
{
if (preg_match(’/.(mp4|avi|mov)$/i’, $nom))
{
fwrite($file,“sudo omxplayer -o hdmi “.$nom.”>/dev/null 2>&1\n”);
}

elseif (preg_match('/\.(jpg|png|bmp)$/i', $nom))
{
	fwrite($file,"(sudo sleep 8 && killall fbi) & sudo fbi -noverbose -a ".$nom." 1>/dev/null 2>/dev/null\n");
}
else
{
	fwrite($file,"".$nom."\n");
}

}
close($file);
shell_exec("/var/www/test/script.sh");
?>[/quote]

Logiquement je vous donne le script.sh créé en conséquence :

[quote]#!/bin/sh
setterm -term xterm -cursor off -clear -blank 0 -powersave off -powerdown 0 >/dev/tty1
sudo omxplayer -o hdmi test.mp4>/dev/null 2>&1
(sudo sleep 8 && killall fbi) & sudo fbi -noverbose -a test.jpg 1>/dev/null 2>/dev/null
sudo omxplayer -o hdmi test.mp4>/dev/null 2>&1
sudo omxplayer -o hdmi test.mp4>/dev/null 2>&1
(sudo sleep 8 && killall fbi) & sudo fbi -noverbose -a test.jpg 1>/dev/null 2>/dev/null
(sudo sleep 8 && killall fbi) & sudo fbi -noverbose -a moi.png 1>/dev/null 2>/dev/null[/quote]

C’est à peine celui qui correspond un. Il y a peut être plus de ligne qu’il n’en faut. Mais le principe est là.
Je tourne en rond depuis hier. Donc si quelqu’un peut m’éclairer ce sera avec plaisir !

Je vous rappelle la problématique : Mon script se lance, j’ai les vidéos via omxplayer qui se lance, mais la ligne contenant la commande fbi ne fonctionne pas.

Ma configuration :
Raspberry Pi
Serveur lighttpd
Debian Wheezy

Merci d’avance,

Jay Gr.

Salut,

L’utilisation de sudo dans un script sent son Ubuntu à plein nez, mais à moins d’avoir donné tous les droits sans mot-de-passe à ton utilisateur,ce serait étonnant que çà fonctionne.
Et si tu as donné tous les droits, adieu la sécurité Linux :018

Bonjour ggoodluck47,

Tout d’abord, merci de m’avoir répondu.

[quote]L’utilisation de sudo dans un script sent son Ubuntu à plein nez, mais à moins d’avoir donné tous les droits sans mot-de-passe à ton utilisateur,ce serait étonnant que çà fonctionne[/quote].

Ok, mais en virant les sudo… Rien n’y fait. Et pourtant, j’arrive à lancer la commande juste au dessus.

Sur le point de la sécurité : Ce système est et va uniquement être utilisé en local sans besoin d’accès internet. La sécurité n’est donc pas ma problématique.

Alors d’après vous, que faire ?

Jay Gr.

Re,

Enlever les sudo et le tester en root me semble la première chose à faire, les droits de sudo ne durent qu’un certain pemps que ton script excède peut-être.

[quote=“ggoodluck47”]Re,

Enlever les sudo et le tester en root me semble la première chose à faire, les droits de sudo ne durent qu’un certain pemps que ton script excède peut-être.[/quote]

Déjà fait, en local, pas de soucis, et même quand je ne suis pas root. Le soucis vient du fait que je l’exécute depuis une poste distant sur mon serveur. Donc avec l’utilisateur www-data…

N’hésitez pas si vous avez d’autres idées ?

Merci,

JayGr

Il faut alors préciser dans ton script où tourne le serveur X (si je comprend bien l’usage de fbi).
En général, c’est :

Et ensuite tu lances les commandes.

[quote=“thuban”]Il faut alors préciser dans ton script où tourne le serveur X (si je comprend bien l’usage de fbi).
En général, c’est :

Et ensuite tu lances les commandes.[/quote]

Bonjour Thuban,

Merci de m’avoir répondu.
Le soucis c’est que fbi n’utilises pas le serveur x… Enfin je ne crois pas. Je l’exécute en commande pour cette raison. Il n’y a pas de serveur x de lancer sur mon Raspberry Pi.
Mais j’essaierais demain !

Merci,

Jay Gr.

[quote=“JayGr”][quote=“thuban”]Il faut alors préciser dans ton script où tourne le serveur X (si je comprend bien l’usage de fbi).
En général, c’est :

Et ensuite tu lances les commandes.[/quote]

Bonjour Thuban,

Merci de m’avoir répondu.
Le soucis c’est que fbi n’utilises pas le serveur x… Enfin je ne crois pas. Je l’exécute en commande pour cette raison. Il n’y a pas de serveur x de lancer sur mon Raspberry Pi.
Mais j’essaierais demain !

Merci,

Jay Gr.[/quote]

Je me permet de double-poster pour relancer ma demande.
La solution apporter par Thuban ne fonctionne pas :frowning:. A mon grand désespoir.
J’ai trouvé ce lien qui parle pas mal de fbi : raspberrypi.org/phpBB3/viewt … 3&start=25

Si ça peut vous donner des idées, moi non !

En attendant vos réponses, je continue mes recherches,

JayGr

J’ai trouvé !!!

code.autistici.org/svn/fim/trunk/README

Dans le lien précédent, il est noté que fbi n’est pas exécutable depuis un script externe… ?
Serais-ce la raison ?

Puisque j’ai installé fim et j’arrive à afficher des images correctement !!!

Petite question : Pourquoi et comment peut-on complètement empêcher l’exécution à distance ?
Et qui a déjà utilisé fim ? (parce que l’autozoom n’autozoom pas très bien :frowning: )

Merci,

JayGr

[quote=“JayGr”]
Le soucis c’est que fbi n’utilises pas le serveur x…
.[/quote]
Bien sûr, le c…

Je ne crois pas que ce soit une fonction de fbi de ne pas permettre cet affichage, mais une limitation de la façon dont il est concu.

Pour fim, tu l’as dans quel paquet afin que l’on teste? (ou quelle source?)

[quote=“thuban”][quote=“JayGr”]
Le soucis c’est que fbi n’utilises pas le serveur x…
.[/quote]
Bien sûr, le c…

Je ne crois pas que ce soit une fonction de fbi de ne pas permettre cet affichage, mais une limitation de la façon dont il est concu.

Pour fim, tu l’as dans quel paquet afin que l’on teste? (ou quelle source?)[/quote]

Euuuh… Bah j’ai installé fim en faisant apt-get install fim…
En faisant : apt-cache show fim j’obtient ;

Package : fim
Version : 0.3-beta-prerelease-1.3
…Des trucs nuls…
Depends : libaa1, libc6 et pleins d’autres.

C’est que tu voulais ?

(Homepage : savannah.nongnu.org/projects/fbi-improved/)

En attendant j’ai eu le temps pour quelques recherches :
Avec la commande suivante, on peut resizer l’image mais c’est pas beau, il l’affiche d’abord en zoomer puis en autozoom :
fim -c ETLACOMMANDEAUTOSIZEDONTJAIOUBLIELASYNTAXE image.jpg

Merci de votre aide,

JayGr

Personne pour me filer un coup de main ?

PS : Je ne sais pas comment enlever le résolu…

Salut,

[quote=“JayGr”]Personne pour me filer un coup de main ?
PS : Je ne sais pas comment enlever le résolu…[/quote]

Fait. Il faut cliquer sur le panneau “interdiction”

[quote=“lol”]Salut,

[quote=“JayGr”]Personne pour me filer un coup de main ?
PS : Je ne sais pas comment enlever le résolu…[/quote]

Fait. Il faut cliquer sur le panneau “interdiction”[attachment=0]interdiction.PNG[/attachment][/quote]

Merci, même si cela ne résolu pas mon problème :smiley:.
Bon, je fais un rappel :
Je n’arrive pas à comprendre comment effectuer un affichage correct avec la commande fim sous debian Wheezy.
J’ai essayé plein de chose, le -a ne donne rien qui aille…

Merci d’avance,

JayGr

Pourquoi cherche-tu as faire ça ? Cette machine a un écran ? Elle affiche quoi quand tu ne lui fait pas afficher de vidéo ?

Bonjour MisterFreez,

Et merci de m’avoir répondu. Je souhaite afficher des images depuis ma console, via un script php qui appelle un script shell.

On se retrouve donc avec la situation suivante :

Page Web du serveur A -> Appelle -> Php du RPi -> Appelle -> Shell du RPi -> Affiche une image (ou une vidéo)

Mon problème étant l’affichage des images. Puisque fbi n’est pas exécutable à distance.
Donc j’ai décidé d’utiliser fim mais il ne fonctionne pas non plus comme je l’aimerais. L’image est zoomer automatiquement pour remplir l’écran… Or, je préfererais que l’image ne remplisse pas l’écran mais qu’elle soit entière. Ou mieux, qu’elle remplisse l’écran mais en étant correctement dimensionner. (Comme le fait si bien fbi)…

En espérant que vous pourrez m’éclairer,

JayGr

Bonjour Bonjour :smiley: :violin: :whistle: :smiley:

J’ai trouvé ! J’ai simplement installé (à la main) la dernière version présente ici : download.savannah.gnu.org/releases/fbi-improved/

Et qui n’est pas présente sur les dépôts de base.
De ce fait, l’autozoom fonctionne très bien, je vous recommande fim pour de l’exécution distante !

Merci à ceux qui ont répondu,

JayGr

[quote=“JayGr”]Bonjour Bonjour :smiley: :violin: :whistle: :smiley:

J’ai trouvé ! J’ai simplement installé (à la main) la dernière version présente ici : download.savannah.gnu.org/releases/fbi-improved/

Et qui n’est pas présente sur les dépôts de base.
De ce fait, l’autozoom fonctionne très bien, je vous recommande fim pour de l’exécution distante !

Merci à ceux qui ont répondu,

JayGr[/quote]

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH !!!
J’en peux plus… Je ne sais plus quoi faire…
Dans la dernière version de fim, je n’arrive plus à faire fonctionner le lancement de fim par un script php

:078 :078 :078 :075 :030 :119 :119 :doh:

Enfin voilà quoi… Je repart du même point qu’avant… Je ne sais plus quoi faire là…

Comment lancer des images en console depuis du code php ???

DONC : Comment autoriser l’exécution à distance (enfin depuis un script php) ?

JayGr.

Bonjour à tous !

Ca y’est, j’ai trouvé la solution de mon problème.
Enfin on m’a beaucoup aidé (chat debian-fr).

Rappel de la problématique :
Je n’arrivais pas à exécuter fbi à distance
Je n’arrivais pas à afficher correctement des images avec fim
Je n’arrivais pas à exécuter fim à distance

Bilan :
Pour lire des images, en console, on peut exécuter à distance fim (via un script quelconque).
Méthode :

[quote]Prérequis :
Les paquets suivants doivent être installés sur votre Debian :

subversion automake autoconf libtool libreadline6-dev libjpeg-dev libpng-dev libtiff-dev libgif-dev libsdl-dev libaa1-dev libpoppler-dev libdjvulibre-dev libspectre-dev [/quote]

  • Désinstaller fim si il est déjà présent sur votre Debian
  • Installer manuellement la dernière version de fim présente ici : download.savannah.gnu.org/releases/fbi-improved/
    (Pour installer manuellement des paquets, il y a de multiples tutoriels en ligne)
  • Tester votre fim avec l’option -a : Si l’image s’affiche correctement, c’est la bonne version
  • Pour permettre l’exécution à distance, vous devez autoriser le binaire fim installer manuellement à être exécuter par votre utilisateur (serveur web ou autre)
    Pour cela :

Vous devriez alors trouver fim (utiliser ls), si ce n’est pas le cas, c’est que vous avez choisi un autre chemin lors de l’installation manuel de votre paquet.
Mettez alors les droits nécessaires sur ce chemin (utiliser chmod).
Tester alors le lancement de fim à l’aide d’un script php ou autre.
Et ça marche !

/!\ Rappel : La version de fim disponible en ligne ne fonctionne pas pour l’exécution à distance /!\

EDIT : Pour une solution d’exécution distante qui fonctionne parfaitement rdv ici : difference-d-execution-distante-et-locale-t43245.html

Remerciements à enikar (chat debian-fr).
Remerciements à ceux qui ont lu ce topic.

JayGr.

Salut,
C’est super; Et merci de retour.

Je reviendrais surement lire ton topic, je m’étais intéressé à ce problème il y a un moment, sans aller au bout (c’était plus dans un esprit de test que d’application vraiment utile).