Mise au point d'un Autorun

Voir le sujet précédent Voir le sujet suivant Aller en bas

Mise au point d'un Autorun

Message  Seb@stien le Jeu 11 Fév 2010 - 13:27

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" Smile

Le but est de rajouter le minimum de chose au rcS ! Smile

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
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  matthelas le Jeu 11 Fév 2010 - 14:12

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 Wink )
A++
Matt

matthelas

Messages : 250
Date d'inscription : 22/01/2010

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Jeu 11 Fév 2010 - 14:27

C'est exactement le but ! Smile

Comme le DvdPlayer est lancé en parallèle, ça ne gène en rien l'exécution du reste Wink

Merci pour le soutient !

Seb@stien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

* * * Répondre en citant * * * * Re: Mise au point d'un Autorun

Message  james56 le Jeu 11 Fév 2010 - 14:46

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

james56

Messages : 30
Date d'inscription : 15/01/2010
Age : 53
Localisation : Bretagne

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Jeu 11 Fév 2010 - 15:00

Bonne idée en effet Wink

Sinon, j'ai "élagué" le script Very Happy

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
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Mise au point d'un Autorun

Message  james56 le Ven 12 Fév 2010 - 9:15

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

james56

Messages : 30
Date d'inscription : 15/01/2010
Age : 53
Localisation : Bretagne

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  matthelas le Ven 12 Fév 2010 - 9:31

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

matthelas

Messages : 250
Date d'inscription : 22/01/2010

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Ven 12 Fév 2010 - 9:34

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

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Ven 12 Fév 2010 - 9:34

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 Wink

Seb@stien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  matthelas le Ven 12 Fév 2010 - 10:37

Seb@stien a écrit:
Grillé par Matt Wink
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

Revenir en haut Aller en bas

Mise au point d'un Autorun

Message  james56 le Sam 13 Fév 2010 - 17:13

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.

james56

Messages : 30
Date d'inscription : 15/01/2010
Age : 53
Localisation : Bretagne

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Lun 15 Fév 2010 - 14:08

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 :

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
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  cavatb le Lun 15 Fév 2010 - 18:19

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

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  cvince le Lun 15 Fév 2010 - 23:11

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 )&
Bonsouaar touti !

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 )&
Dans un fichier /tmp/hdd/root/autorun.sh
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)
Ok !

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
... dans le fichier rcS (à la place de la boucle) fonctionne... Shocked

cvince

Messages : 10
Date d'inscription : 31/01/2010

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  murigny64 le Mar 16 Fév 2010 - 6:57

Pour rebooter , tu fais
Code:
reboot

C'est plus académique Wink

murigny64

Messages : 265
Date d'inscription : 11/12/2009

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Mar 16 Fév 2010 - 9:19

Bizarre en effet Sad

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
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  matthelas le Mar 16 Fév 2010 - 10:04

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?

matthelas

Messages : 250
Date d'inscription : 22/01/2010

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  cvince le Mar 16 Fév 2010 - 10:10

murigny64 a écrit:Pour rebooter , tu fais
Code:
reboot

C'est plus académique Wink
Embarassed spa faux !

J'avais pas testé "reboot" et "shutdown" n'était pas reconnu...

Seb@stien a écrit:Bizarre en effet Sad

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
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...).

cvince

Messages : 10
Date d'inscription : 31/01/2010

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  cavatb le Mar 16 Fév 2010 - 16:23

Seb@stien a écrit:Bizarre en effet Sad

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

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Mar 16 Fév 2010 - 17:01

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

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  cavatb le Mar 16 Fév 2010 - 17:14

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

Revenir en haut Aller en bas

Mise au point d'un Autorun

Message  james56 le Mer 17 Fév 2010 - 0:17

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 )&

james56

Messages : 30
Date d'inscription : 15/01/2010
Age : 53
Localisation : Bretagne

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Ven 2 Avr 2010 - 17:12

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 :
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
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  murigny64 le Ven 2 Avr 2010 - 17:34

Oui, comme ca c'est mieux Wink
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

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Seb@stien le Ven 2 Avr 2010 - 19:35

Oui, sauf que ça c'est pas un autorun c'est un start auto de la console ! Smile

Si tu veux ajouter d'autres choses, il faut que tu modifies encore le rcS et apparemment .. le LG aime pas trop Sad

Seb@stien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Mise au point d'un Autorun

Message  Contenu sponsorisé Aujourd'hui à 10:39


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum