Doume Manager : un plugin pour Dreambox 7000/7020
La documentation au format PDF est téléchargeable ici |
L'utilitaire complet (MAJ 01/03/2006) est téléchargeable ICI |
|
Octobre 2005
Objectif :
Le système Linux embarqué par la Dreambox donne accès à toutes sortes de commandes système, à partir d’une console telnet.
Toutefois, je rêvais depuis un moment d’une possibilité de lancer ces commandes à partir de la zap, depuis mon fauteuil, loin de tout PC !.
L’objectif de ce module, livré sous forme de plugin, est de rendre possible, à partir d’un menu de type ‘enigma’ de lancer n’importe quel script installé sur votre dreambox, et obtenir le résultat d’exécution dans une fenêtre de l’OSD Enigma.
Certaines ‘images’ telles que Hydra, par exemple, embarquaient un mécanisme de personnalisation du Menu Principal enigma ( type le ‘mycpanel.xml’ de Hydra).
Par contre, par défaut, la version enigma issue du CVS ne contient aucun mécanisme de ce genre. Les implémentations diverses d’extensions enigma, par les ‘Teams’, les rendent toutes incompatibles entre elles, et plus ou moins conviviales et/ou rapides d’accès.
Sous la forme d’un plugin, on devrait retrouver la même approche, exploitable par toutes les images.
Restrictions :
J’ai développé et compilé ce plugin à partir d’un CDK open-dreambox du 20/01/2006
Il est donc compilable sous cet environnement.
La compilation n’a pas été testée sous d’autres CDK
Le plugin ‘Doume_Manager’ ainsi obtenu a été testé avec succès sur :
- L’image obtenue à partir de ce CVS du 20/01/2006
- Gemini 2.20 (elle aussi basée sur un CVS récent)
Il ne fonctionne pas sur une image Hydra 7020 datant de Février 2005
Il n’a pas été testé sur des images anciennes, ou sur DM 7000
Mais il devrait fonctionner sur des images 7000 basées sur des CVS récents
Installation :
- transférer vers la dreambox (dans /tmp par exemple) le fichier doume_plugin.tar téléchargé
-en console telnet, loggée ‘root’, effectuer les commandes suivantes :
cd /tmp
tar xvf doume_plugin.tar
./install.sh
En fait, le script install.sh effectuera les commandes suivantes :
mv ./doume.cfg /usr/lib/tuxbox/plugins
mv ./doume.so /usr/lib/tuxbox/plugins
mv ./doume_panel.xml /etc
mv ./doume_scripts /usr/bin
chmod 644 /etc/doume_panel.xml
chmod 755 /usr/bin/doume_scripts
chmod 755 /usr/lib/tuxbox/plugins/doume.so
chmod 444 /usr/lib/tuxbox/plugins/doume.cfg
Personnalisation :
Vous pouvez personnaliser le menu que le plugin, une fois lancé, vous proposera sur l’écran
Il vous suffit de modifier, avec un éditeur de texte compatible Unix, le fichier :
/etc/doume_panel.xml
Ce fichier doit respecter la syntaxe suivante :
<root>
<execute name="Montages" target="/usr/bin/doume_scripts 1" result="1"/>
<execute name="Espace libre" target="/usr/bin/doume_scripts 2" result="1"/>
<execute name="Memoire libre" target="/usr/bin/doume_scripts 5" result="1"/>
<separator/>
<execute name="Config reseau" target="/usr/bin/doume_scripts 3" result="1"/>
<execute name="Liste processus" target="/usr/bin/doume_scripts 4" result="1"/>
</root>
name indique le libellé qui apparaîtra sur la ligne du menu
target indique la commande à lancer
result indique si un résultat doit être affiché après exécution : ‘1’ = oui ‘0’=non
Note : dans l’exemple livré, j’ai délibérément choisi de n’avoir qu’un seul script « doume_scripts » qui attend un paramètre (de 1 à 5) définissant la commande à lancer
Vous avez parfaitement la possibilité de créer un script pour chaque commande souhaitée, mais méfiez-vous de la prolifération de petits scripts indépendants : En cas de sauvegarde, il ne faut pas en oublier !
Ensuite, il vous appartiendra de personnaliser le script exemple proposé (/usr/bin/doume_scripts) ou d’en créer autant que vous voudrez, en accord avec le contenu de /etc/doume_panel.xml
Pour l’instant, il n’est possible de gérer qu’un niveau de menu (pas encore d’arborescence, mais ça viendra !)
Suggestion pour un accès rapide :
Selon l’image Dreambox que vous utilisez, vous pouvez, sur certaines, définir un ‘raccourci’ de la zap, vous permettant, moyennant une simple touche , d’accéder directement à ce plugin, par exemple avec un double-clic sur le bouton jaune (Gemini 2.20 -> Quickbutton setting).
Ainsi, vous accédez instantanément au menu de vos propres scripts.
Remarque sur le contenu de vos scripts :
Lorsque vous développez un script activable via Doume Manager Plugin, vous devez prendre en considération les contraintes suivantes :
1- Au retour du script, c’est systématiquement le contenu du fichier texte /tmp/result qui sera affiché par le plugin (si demandé dans le Panel XML)
A vous de faire en sorte que les résultats à afficher soient écrits dans ce fichier, durant l’exécution de votre script
2- Certains utilitaires Linux (comme nc) , en écrivant sur leur sortie standard (stdout) semblent essayer de formater le texte au format DOS (avec des cr\lf ou des cr seuls, au lieu de lf seul en convention Unix). Ceci donne lieu à une mise en page étrange du résultat par le plugin.
Il est donc fortement conseillé d’effectuer un traitement de filtrage pour élimination de ces ^M dans le fichier /tmp/result, avant de rendre la main au plugin (voir exemple à la fin du script /usr/bin/doume_scripts )
3- Les lignes vides de /tmp/result ne sont pas affichées par le plugin (limitation taille d’écran)
4- Si votre script ne retourne pas un status 0 (exit 0), le
plugin n’affichera pas le contenu de /tmp/result après execution, même si cela
a été demandé dans la configuration du Panel.
Résultat sur la TV :
1) Menu proposé par le plugin
2) Résultat d’execution ( commande nc sur cardserver, utilisé avec newcamd)
L'outil complet est téléchargeable ICI Il contient une documentation au format PDF (Installation et Utilisation)
La documentation seule, au format PDF est téléchargeable ici
Si vous le mettez en oeuvre, merci de me donner votre avis par un petit mail à domi@dambrain.fr