Mise au point d'un Autorun
+2
matthelas
Seb@stien
6 participants
Page 1 sur 1
Mise au point d'un Autorun
Bonjour,
J'ouvre ce post pour discuter autour d'un possible autorun
Ce que nous savons, c'est que le fichier rcS (situé dans /usr/local/etc) est exécuté au boot et en R/W
Nous savons aussi que lorsque ce fichier est exécuté, le disque n'est pas encore monté
C'est pourquoi je vous propose un premier "add on" au rcS pour executer, par exemple, le script "autorun.sh" situé dans /tmp/hdd/root. (code basé sur l'idée de cavatb)
Cet "add on" cherche à exécuter le script pendant 60 secondes toutes les 6 secondes
N'hésitez pas à corriger quelque chose qui pourrais être fait de manière plus rapide ou moins "bourrin"
Le but est de rajouter le minimum de chose au rcS !
Seb@tien
J'ouvre ce post pour discuter autour d'un possible autorun
Ce que nous savons, c'est que le fichier rcS (situé dans /usr/local/etc) est exécuté au boot et en R/W
Nous savons aussi que lorsque ce fichier est exécuté, le disque n'est pas encore monté
C'est pourquoi je vous propose un premier "add on" au rcS pour executer, par exemple, le script "autorun.sh" situé dans /tmp/hdd/root. (code basé sur l'idée de cavatb)
Cet "add on" cherche à exécuter le script pendant 60 secondes toutes les 6 secondes
N'hésitez pas à corriger quelque chose qui pourrais être fait de manière plus rapide ou moins "bourrin"
Le but est de rajouter le minimum de chose au rcS !
- Code:
LOOP_COUNT=0
until [ -f /tmp/hdd/root/autorun.sh ]
do
sleep 6
LOOP_COUNT=`expr $LOOP_COUNT + 1`
if [ "$LOOP_COUNT" -eq 10 ]; then break; fi
done
if [ "$LOOP_COUNT" -lt 10 ]; then /tmp/hdd/root/autorun.sh; fi
Seb@tien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
Hello,
Si je comprends bien l'objectif, tu souhaites lancer le plus tôt possible (à 6 secondes prêt) un fichier autorun spécifique (qui contiendra plein de choses à la fin, histoire d'éviter de pourrir le rcS + risque de mauvaises manip), et au plus tard 1 minute après le chargement du système d'exploitation (en gros sans imposer un sleep de 1 minute comme certains le pratiquaient auparavant), dès que le disque dur est monté et donc que le fichier en question est accessible.
A priori je trouve l'approche plutôt correcte, et ne maîtrise pas assez le shell pour corriger les fautes de frappe, mais ça me semble juste!
(je montre mon soutien impatient )
A++
Matt
Si je comprends bien l'objectif, tu souhaites lancer le plus tôt possible (à 6 secondes prêt) un fichier autorun spécifique (qui contiendra plein de choses à la fin, histoire d'éviter de pourrir le rcS + risque de mauvaises manip), et au plus tard 1 minute après le chargement du système d'exploitation (en gros sans imposer un sleep de 1 minute comme certains le pratiquaient auparavant), dès que le disque dur est monté et donc que le fichier en question est accessible.
A priori je trouve l'approche plutôt correcte, et ne maîtrise pas assez le shell pour corriger les fautes de frappe, mais ça me semble juste!
(je montre mon soutien impatient )
A++
Matt
matthelas- Messages : 250
Date d'inscription : 22/01/2010
Re: Mise au point d'un Autorun
C'est exactement le but !
Comme le DvdPlayer est lancé en parallèle, ça ne gène en rien l'exécution du reste
Merci pour le soutient !
Seb@stien
Comme le DvdPlayer est lancé en parallèle, ça ne gène en rien l'exécution du reste
Merci pour le soutient !
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
* * * Répondre en citant * * * * Re: Mise au point d'un Autorun
Bonjour,
Avec cette méthode, s'il y a un problème au boot, pourra-t-on alors shinter l'autorun en enlevant le disque extractible (pour les ms400) puis mettre le rcS d'origine ?
Dans cas, il serait pas mal de prévoir dans ta console d'administration une fonction permettant de remplacer le rcS par celui d'origine (via une sauvegarde ?)
Fred
Avec cette méthode, s'il y a un problème au boot, pourra-t-on alors shinter l'autorun en enlevant le disque extractible (pour les ms400) puis mettre le rcS d'origine ?
Dans cas, il serait pas mal de prévoir dans ta console d'administration une fonction permettant de remplacer le rcS par celui d'origine (via une sauvegarde ?)
Fred
james56- Messages : 30
Date d'inscription : 15/01/2010
Age : 61
Localisation : Bretagne
Re: Mise au point d'un Autorun
Bonne idée en effet
Sinon, j'ai "élagué" le script
Seb@stien
Sinon, j'ai "élagué" le script
- Code:
for i in $(seq 10)
do
sleep 6
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi
done
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Mise au point d'un Autorun
Bonjour,
J'ai essayer sans succès la méthode de l'autorun.
J'ai créer exactement le même sous-shell que ton exemple et j'ai mis dedans les lignes de lancement de samba et du Twonkymedia serveur qui fonctionnait sans pb lorsque'elles étaient à la fin du rcS (j'ai utilisé vi sur le LG pour être sur).
Mais après reboot plus de samba et pas de serveur Twonky disponbile sur le LG.
J'ai ensuite remis le lancement dans le rcS et la ça fonctionne de nouveau.
Fred
J'ai essayer sans succès la méthode de l'autorun.
J'ai créer exactement le même sous-shell que ton exemple et j'ai mis dedans les lignes de lancement de samba et du Twonkymedia serveur qui fonctionnait sans pb lorsque'elles étaient à la fin du rcS (j'ai utilisé vi sur le LG pour être sur).
Mais après reboot plus de samba et pas de serveur Twonky disponbile sur le LG.
J'ai ensuite remis le lancement dans le rcS et la ça fonctionne de nouveau.
Fred
james56- Messages : 30
Date d'inscription : 15/01/2010
Age : 61
Localisation : Bretagne
Re: Mise au point d'un Autorun
Salut James,
Désolé si c'est hors de propos, mais est-ce que tu as modifié les droits de ton fichier autorun.sh pour qu'il puisse s'exécuter?
Cordialement,
Matt
Désolé si c'est hors de propos, mais est-ce que tu as modifié les droits de ton fichier autorun.sh pour qu'il puisse s'exécuter?
Cordialement,
Matt
matthelas- Messages : 250
Date d'inscription : 22/01/2010
Re: Mise au point d'un Autorun
Et en testant "manuellement" le script ? (c'est à dire en le mettant dans un fichier)
le fichier autorun.sh est bien dans /tmp/hdd/root/ ?
Il est bien exécutable ? (chmod +x /tmp/hdd/root/autorun.sh)
Seb@stien
le fichier autorun.sh est bien dans /tmp/hdd/root/ ?
Il est bien exécutable ? (chmod +x /tmp/hdd/root/autorun.sh)
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
matthelas a écrit:Salut James,
Désolé si c'est hors de propos, mais est-ce que tu as modifié les droits de ton fichier autorun.sh pour qu'il puisse s'exécuter?
Cordialement,
Matt
Grillé par Matt
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
Seb@stien a écrit:
Grillé par Matt
Seb@stien
Lol, pour une fois que je peux apporter une petite pierre à l'édifice ^^
En tout cas, ça commence à prendre une bonne forme tout ça, c'est réjouissant!
Sur les questions de compilation en C à destination de cette architecture, est-ce qu'on a un environnement à peu près connu maintenant?
Ca fait (très très) longtemps que je n'ai rien programmé, mais j'aimerais bien essayer de fouiller autour de xmltv à l'occasion!
Cela dit, si je comprends bien le principe des développements en cours, et des travaux de Victor sur la db schedule record, on peut envisager de s'appuyer sur ton package pour préparer des éléments depuis un pc (ou en php sur le LG, ou etc?) puis les transmettre vers le LG. Le seul souci quand même c'est que ce n'est pas forcément très portable vers mac ou linux.
Je vais regarder un peu du côté du php, de mémoire ça ressemble fortement au perl, et ça j'en ai fait un peu il n'y a pas si longtemps que ça.
Si on peut faire des query de type xmltv en php, ça pourrait simplifier la programmation à distance, non?
Désolé pour le HS,
Matthieu
matthelas- Messages : 250
Date d'inscription : 22/01/2010
Mise au point d'un Autorun
Bonjour,
Oui, le fichier autorun.sh est a bien les droits en exécution et d'ailleurs lorsque je le lance manuellement Samba et Twonkyserver démarre normallement mais pas depuis le rcS.
Je vais faire un essai avec un sleep bête et méchant pour voir si c'est pas la boucle de tempo qui ne fonctionne pas.
Oui, le fichier autorun.sh est a bien les droits en exécution et d'ailleurs lorsque je le lance manuellement Samba et Twonkyserver démarre normallement mais pas depuis le rcS.
Je vais faire un essai avec un sleep bête et méchant pour voir si c'est pas la boucle de tempo qui ne fonctionne pas.
james56- Messages : 30
Date d'inscription : 15/01/2010
Age : 61
Localisation : Bretagne
Re: Mise au point d'un Autorun
Je pense que c'est à cause du sleep
Après avoir vu le post de cvince (pour monter un partage NFS), il dit qu'après avoir ajouté le chemin complet de sleep, ça a fonctionné (pour son script)
donc, en modifiant comme ceci, cela devrait fonctionner :
ou pour ceux qui voudraient l'avoir sur une seule ligne
Seb@stien
Après avoir vu le post de cvince (pour monter un partage NFS), il dit qu'après avoir ajouté le chemin complet de sleep, ça a fonctionné (pour son script)
donc, en modifiant comme ceci, cela devrait fonctionner :
- Code:
for i in $(seq 10)
do
/bin/sleep 6
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi
done
ou pour ceux qui voudraient l'avoir sur une seule ligne
- Code:
for i in $(seq 10); do /bin/sleep 6; if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi; done
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
Seb@stien a écrit:Je pense que c'est à cause du sleep
- Code:
for i in $(seq 10); do /bin/sleep 6; if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi; done
Seb@stien
Salut Seb@stien
Pour que l'ajout à la fin du rcS soit exécuté par un sous-shell en tache de fond, pour interférer le moins possible avec le boot du LG,
je pense qu'il faut encadrer ce bout de code de parenthèses et le terminer par le caractère &.
- Code:
( for i in $(seq 10); do /bin/sleep 6; if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi; done )&
cavatb- Messages : 14
Date d'inscription : 09/12/2009
Re: Mise au point d'un Autorun
Bonsouaar touti !cavatb a écrit:
Pour que l'ajout à la fin du rcS soit exécuté par un sous-shell en tache de fond, pour interférer le moins possible avec le boot du LG,
je pense qu'il faut encadrer ce bout de code de parenthèses et le terminer par le caractère &.
- Code:
( for i in $(seq 10); do /bin/sleep 6; if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi; done )&
J'ai testé la mise en place de cette boucle, mais sans résultats malheureusement.
Voici ce que j'ai testé :
En fin de fichier /usr/local/etc/rcS
- Code:
( for i in $(seq 10); do /bin/sleep 6; if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi; done )&
- Code:
#!/bin/sh
mount -t nfs 192.168.0.1:/volume1/public/multimedia/video /tmp/hdd/volumes/HDD1/movie -o nolock,async,noatime,ro,rsize=32768,wsize=32768,tcp
Résultat d'un ls -la sur /tmp/hdd/root :
- Code:
/ # ls -la /tmp/hdd/root
drwxrwxrwx 3 root root 1024 Feb 15 21:57 .
drwxr-xr-x 7 501 100 0 Aug 19 11:54 ..
-rwxr-xr-x 1 root root 153 Feb 15 22:37 autorun.sh
drwx------ 2 root root 12288 Feb 10 22:16 lost+found
Résultat de la commande mount avant execution du script :
- Code:
/tmp/hdd/root # mount
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
none on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
none on /sys type sysfs (rw)
/dev/mtdblock/2 on /usr/local/etc type jffs2 (rw,noatime)
none on /tmp type ramfs (rw)
/dev/rd/0 on /mnt/rd type vfat (rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
/dev/scsi/host1/bus0/target0/lun0/part1 on /tmp/hdd/volumes/HDD1 type ufsd (rw,nodiratime)
/dev/scsi/host1/bus0/target0/lun0/part3 on /tmp/hdd/livepause type udf (rw)
/dev/scsi/host1/bus0/target0/lun0/part4 on /tmp/hdd/root type ext3 (rw)
test du fichier autorun.sh :
- Code:
/tmp/hdd/root # sh autorun.sh
Résultat de la commande mount après execution du script :
- Code:
/tmp/hdd/root # mount
/dev/root on / type squashfs (ro)
[snipe]
/dev/scsi/host1/bus0/target0/lun0/part4 on /tmp/hdd/root type ext3 (rw)
192.168.0.1:/volume1/public/multimedia/video on /tmp/hdd/volumes/HDD1/movie type nfs (ro,noatime,v3,rsize=32768,wsize=32768,hard,tcp,nolock,addr=192.168.0.1)
Reboot :
- Code:
killall DvdPlayer
Après 3 minutes, toujours pas de mount..., par contre
- Code:
/bin/sleep 30
mount -t nfs 192.168.0.1:/volume1/public/multimedia/video /tmp/hdd/volumes/HDD1/movie -o nolock,async,noatime,ro,rsize=32768,wsize=32768,tcp
cvince- Messages : 10
Date d'inscription : 31/01/2010
Re: Mise au point d'un Autorun
Pour rebooter , tu fais
C'est plus académique
- Code:
reboot
C'est plus académique
murigny64- Messages : 265
Date d'inscription : 11/12/2009
Re: Mise au point d'un Autorun
Bizarre en effet
Pour tester (et malheureusement je ne peux pas) il faudrait mettre un truc comme ls -la /tmp/hdd/root >/tmp/hdd/root/trace.log quelque part dans la boucle histoire de "voir" ce qui se passe
Seb@stien
Pour tester (et malheureusement je ne peux pas) il faudrait mettre un truc comme ls -la /tmp/hdd/root >/tmp/hdd/root/trace.log quelque part dans la boucle histoire de "voir" ce qui se passe
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
Question bête aux experts linux.
Est-ce qu'il faut appeler le programme avec un . ou bien avec un nohup (je vois pas trop l'intérêt du second)?
Voir même en le lançant explicitement avec sh?
Est-ce qu'il faut appeler le programme avec un . ou bien avec un nohup (je vois pas trop l'intérêt du second)?
Voir même en le lançant explicitement avec sh?
matthelas- Messages : 250
Date d'inscription : 22/01/2010
Re: Mise au point d'un Autorun
spa faux !murigny64 a écrit:Pour rebooter , tu fais
- Code:
reboot
C'est plus académique
J'avais pas testé "reboot" et "shutdown" n'était pas reconnu...
Je testerais cela ce soir, le LG n'est pas allumé (sauf s'il y a moyen de balancer un magic packet qui le réveillerai...).Seb@stien a écrit:Bizarre en effet
Pour tester (et malheureusement je ne peux pas) il faudrait mettre un truc comme ls -la /tmp/hdd/root >/tmp/hdd/root/trace.log quelque part dans la boucle histoire de "voir" ce qui se passe
Seb@stien
cvince- Messages : 10
Date d'inscription : 31/01/2010
Re: Mise au point d'un Autorun
Seb@stien a écrit:Bizarre en effet
Pour tester (et malheureusement je ne peux pas) il faudrait mettre un truc comme ls -la /tmp/hdd/root >/tmp/hdd/root/trace.log quelque part dans la boucle histoire de "voir" ce qui se passe
Seb@stien
Il y a un petit PB dans ta boucle Seb@stien, la commande seq n'est pas implémente dans le busybox du LG.
Cette commande est bien présente dans le busybox de ta console.
Dans les fichiers de démarrages, Il faut toujours penser à mettre le chemin des commandes externes au shell.
Le code devient:
- Code:
( for i in $(1 2 3 4 5 6 7 8 9 10); do
/bin/sleep 6;
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi;
done )&
cavatb- Messages : 14
Date d'inscription : 09/12/2009
Re: Mise au point d'un Autorun
Merci Cavatb !!!
Effectivement, je test sur une distrib' linux (ARCH tiens tiens ...) avec une busybox qui j'ai compilé mais c'est la version 1.15 donc implémenté dedans !
Mais j'ai l'impression que for i in $(1 2 3 4 5 6 7 8 9 10) va planter
Ce marcherait pas mieux comme ça :
Seb@stien
Effectivement, je test sur une distrib' linux (ARCH tiens tiens ...) avec une busybox qui j'ai compilé mais c'est la version 1.15 donc implémenté dedans !
Mais j'ai l'impression que for i in $(1 2 3 4 5 6 7 8 9 10) va planter
Ce marcherait pas mieux comme ça :
- Code:
( for i in 1 2 3 4 5 6 7 8 9 10; do
/bin/sleep 6;
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi;
done )&
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
Seb@stien a écrit:Merci Cavatb !!!
Effectivement, je test sur une distrib' linux (ARCH tiens tiens ...) avec une busybox qui j'ai compilé mais c'est la version 1.15 donc implémenté dedans !
Mais j'ai l'impression que for i in $(1 2 3 4 5 6 7 8 9 10) va planter
Ce marcherait pas mieux comme ça :
- Code:
( for i in 1 2 3 4 5 6 7 8 9 10; do
/bin/sleep 6;
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi;
done )&
Seb@stien
C'est mieux, le copier-coller a certains inconvénients.
cavatb- Messages : 14
Date d'inscription : 09/12/2009
Mise au point d'un Autorun
Bonjour,
Merci à tous, je confirme, le script suivant fonctionne effectivement très bien :
Code:
( for i in 1 2 3 4 5 6 7 8 9 10; do
/bin/sleep 6;
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi;
done )&
Merci à tous, je confirme, le script suivant fonctionne effectivement très bien :
Code:
( for i in 1 2 3 4 5 6 7 8 9 10; do
/bin/sleep 6;
if [ -f /tmp/hdd/root/autorun.sh ]; then /tmp/hdd/root/autorun.sh; break; fi;
done )&
james56- Messages : 30
Date d'inscription : 15/01/2010
Age : 61
Localisation : Bretagne
Re: Mise au point d'un Autorun
Je confirme aussi (bah oui, maintenant que j'ai de nouveau un LG !!!)
Attention : Pour les utilisateurs avertis ...
J'ai ajouté ceci dans le rcS :
J'ai monté la console et copié le tout dans un répertoire (/tmp/hdd/root/console par exemple) et mis ceci dans le fichier /tmp/hdd/root/rcS.addon :
Et la console démarre automatiquement à l'allumage du LG !
Seb@stien
Attention : Pour les utilisateurs avertis ...
J'ai ajouté ceci dans le rcS :
- Code:
( for i in 1 2 3 4 5 6 7 8 9 10; do /bin/sleep 6; if [ -f /tmp/hdd/root/rcS.addon ]; then /tmp/hdd/root/rcS.addon; break; fi; done )& #rcS.addon
J'ai monté la console et copié le tout dans un répertoire (/tmp/hdd/root/console par exemple) et mis ceci dans le fichier /tmp/hdd/root/rcS.addon :
- Code:
#!/bin/sh
/tmp/hdd/root/console/bin/httpd -p 81 -h /tmp/hdd/root/console/www/
Et la console démarre automatiquement à l'allumage du LG !
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Mise au point d'un Autorun
Oui, comme ca c'est mieux
Personnellement, j'avais fait comme ca, direct dans le rcS:
ca marche bien aussi.
Personnellement, j'avais fait comme ca, direct dans le rcS:
- Code:
sleep 40 && cd /tmp/hdd/root/console/bin/ && ./httpd -p 81 -h /tmp/hdd/root/console/www
ca marche bien aussi.
murigny64- Messages : 265
Date d'inscription : 11/12/2009
Re: Mise au point d'un Autorun
Oui, sauf que ça c'est pas un autorun c'est un start auto de la console !
Si tu veux ajouter d'autres choses, il faut que tu modifies encore le rcS et apparemment .. le LG aime pas trop
Seb@stien
Si tu veux ajouter d'autres choses, il faut que tu modifies encore le rcS et apparemment .. le LG aime pas trop
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Sujets similaires
» Peut etre une piste pour de "l'autorun"
» Firmware tcheque
» Nouveau Pack Harmony ...
» MISE A JOUR !!!
» Nouveau firmware CUSTOM 3 (Custom3_0148VK Sept-2010)
» Firmware tcheque
» Nouveau Pack Harmony ...
» MISE A JOUR !!!
» Nouveau firmware CUSTOM 3 (Custom3_0148VK Sept-2010)
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|