Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/05/2006, à 22:54

JoNas-fr

Problème de script bash au démarrage

Bon alors j'espère que ce topic n'a pas déja été posé (lopo trouvé l'gâ tongue ) si c'est le cas avertissez moi!

Donc voilà j'ai ces commandes à éxécuter à chaque démarrage :

sudo modprobe -r ov51x
sudo modprobe ov51x
sudo modprobe ov519_decomp

Je pense avoir fais le bon choix en les mettants dans un fichier .sh avec les droits 755

Donc je ne sais pas si il faut le démarrer avant le logon ou après c'est à dire avec l'interface graphique (j'espère être clair dans mes propos...) et je ne sais pas non plus comment m'y prendre smile et en plus il faut qu'il soit éxécuté avec les droits root (--> à cause des sudo).

Pour info j'ai Ubuntu 5.10 sous GNOME.


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#2 Le 03/05/2006, à 00:52

nono

Re : Problème de script bash au démarrage

Bonjour,

Si tu veux que des modules soient charger au démarrage de l'ordi, il te suffit de les rajouter dans /etc/modules

sudo gedit /etc/modules

puis tu rajoutes dans le fichier
ov51x
ov519_decomp

Par contre je ne comprend pas bien pourquoi tu veux decharger le module ov51x pour le recharger après (sudo modprobe -r ov51x, sudo modprobe ov51x)

Voila en espérant t'avoir aider smile

nono

Hors ligne

#3 Le 03/05/2006, à 14:10

JoNas-fr

Re : Problème de script bash au démarrage

Par contre je ne comprend pas bien pourquoi tu veux decharger le module ov51x pour le recharger après (sudo modprobe -r ov51x, sudo modprobe ov51x)

Car en fait le chargement du module ov519_decomp (version 'hackée' du ov519) ne peut se faire chez moi qu'en chargeant et déchargeant le module ov51x auparavant.

J'allais oublier, il me manquait une commande pour que ma cam démarre, voici les 4 commandes necessaires :

sudo depmod -a (n'est-il pas déja fait par défaut au démarrage d'ubuntu?)
sudo modprobe -r ov51x
sudo modprobe ov51x
sudo modprobe ov519_decomp

Comme il faut que je puisse décharger ov51x je ne pense pas que ta solution ne marche nono neutral


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#4 Le 03/05/2006, à 14:37

sksbir

Re : Problème de script bash au démarrage

Bonjour, voici un lien vers un autre topic de ce forum où j'ai déjà expliqué comment réaliser des actions au démarrage.

Je te laisse déja regarder ça avant de continuer à développer...

Dernière modification par sksbir (Le 03/05/2006, à 14:37)

Hors ligne

#5 Le 03/05/2006, à 16:50

JoNas-fr

Re : Problème de script bash au démarrage

Merci beaucoup sksbir.

Cependant quelques interrogations me sont venues au cours de cette manip'.
Cela fais peu de temps que je suis passé à linux, donc ma capacité d'appréhension de ce nouveau monde est encore un peu limitée quoique grandissante de jour en jour notamment grâce à des posts comme le tien.

Voici mes interrogations :

- du fait même de la nature de mon script (chargement/déchargement de modules) ne serait-il pas plus judicieux de le faire démarrer avec les autres modules comme le préconisait nono mais avec le possibilité de décharger puis charger un module (ici ov51x)?

- ce script fais marcher ma webcam quand je l'éxécute dans un terminal au cours d'une session déja ouverte, coment ce fait-il qu'il ne la fasse pas fonctionner lors du démarrage d'Ubuntu?


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#6 Le 03/05/2006, à 17:31

sksbir

Re : Problème de script bash au démarrage

@jonas-fr :
- non justement car le fichier /etc/modules est un fichier parametre contenant la liste des modules à charger au boot. Le programme inclu dans ubuntu qui s'occupe de lire ce fichier, et d'exécuter le chargement des modules qu'il y trouve n'est pas codé pour décharger un module: il a été conçu pour charger une liste, un point c'est tout.

- je ne comprend pas ta 2eme question. Il faudrait expliquer ce que tu as réalisé au juste comme manip avec le démarrage...

Hors ligne

#7 Le 03/05/2006, à 19:21

JoNas-fr

Re : Problème de script bash au démarrage

@sksbir

Oui pardon j'ai oublié de le mentionner dans mon précédent post. J'ai fais un script dans /etc/init.d/ qui s'appelle init_eyetoy, il a les droits en éxécution (755 owner:root)et voici ce qu'il contient (c'est un script très basique) :

#!/bin/sh

echo -n "lancement init_eyetoy"
sudo /home/jonas/eyetoy

Je l'ai testé :

sudo /etc/init.d/init_eyetoy

Je l'ai activé au démarrage :

sudo update-rc.d init_eyetoy start 20 2 3 4 5 .

Voici maintenant ce que contient le fichier /home/jonas/eyetoy :

#!/bin/sh

depmod
modprobe -r ov51x
modprobe ov51x
modprobe ov519_decomp

Ce fichier aussi est éxécutable (777 owner:jonas).


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#8 Le 03/05/2006, à 20:01

PDemong

Re : Problème de script bash au démarrage

JoNas-fr, tu apprends vite.

D'une façon générale, tu ne peux pas mettre dans un script la commande sudo. Je te rappelle que cette commande est "interactive" et te demande un mot de passe à rentrer au clavier. Si tu lances la commande dans un script, cela ne pourra pas fonctionner.

Le but de "sudo" est de lancer une commande en tant que root.

Or ton script /etc/init.d/init_eyetoy appartient DEJA à root. Donc pas besoin d'y mettre une commande sudo, mets directement dedans :

#!/bin/sh
ARG=$1
if [ "${ARG}" = "start" ]; then
  depmod
  modprobe -r ov51x
  modprobe ov51x
  modprobe ov519_decomp
fi

Pour la commande update-rc.d que tu utilises, je ne connaissais pas. Mais ce qui est clair, c'est que 20 est bien trop tot, tu devrais faire ce script tout à la fin de ton boot, à 99 donc. Ce qui donnerait plutot :

sudo update-rc.d init_eyetoy start 99 2 3 4 5

Faudra donc au préalable effacer ta précédente déclaration avec l'option remove de update-rc.d :

sudo update-rc.d init_eyetoy remove

Hors ligne

#9 Le 03/05/2006, à 20:32

JoNas-fr

Re : Problème de script bash au démarrage

@Pdemong

Je n'ai absolument aucun mérite, ces commandes viennent d'un lien proposé par sksbir, et puis à l'IUT info où je suis on nous apprend à être de bon geeks ouvrant bien grand leurs oreilles pour écouter. J'ai mis en place ta méthode via la modification de mon script et dès que je pourrai redémarrer je vous tiendrai au courant.
(juste le tout petit oubli du point "."à la fin de ta commande

sudo update-rc.d init_eyetoy start 99 2 3 4 5

pour la rendre fonctionnelle.

Merci encore de ton post Pdemong et du tien sksbir.


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#10 Le 03/05/2006, à 22:22

sksbir

Re : Problème de script bash au démarrage

pas de quoi wink
Et puis ça fait toujours plaisir de rendre service à quelqu'un qui cite le flim le plus classe du monde tongue

@Pdemong, je te cite : "Or ton script /etc/init.d/init_eyetoy appartient DEJA à root. Donc pas besoin d'y mettre une commande sudo"

Ne pas confondre le propriétaire du fichier et le propriétaire du processus qui exécute le shell lisant le fichier.
Ici, c'est parce que c'est le processus de boot (initié par root) qui lit les fichiers /etc/rcX.d que les instructions sont exécutées avec les privilèges de root.
Le fichier peut appartenir à qui tu veux, en théorie, ça marchera aussi.

Hors ligne

#11 Le 03/05/2006, à 22:40

JoNas-fr

Re : Problème de script bash au démarrage

Bon alors ça ne marche pas. Et-ce je pense pour une (ou deux) des raisons suivantes :

1- le coup du déchargement/chargement du module ne passe pas trop
2- c'est un vilain petit canard de module (un module hacké damned!)

Je continue de mettre les mains dans le camboui on verra bien, en plus c'est en forgeant qu'on devient... wink

@sksbir
quelle classe en effet ce flim! big_smile

Dernière modification par JoNas-fr (Le 03/05/2006, à 23:57)


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#12 Le 03/05/2006, à 23:02

PDemong

Re : Problème de script bash au démarrage

Par curiosité, si tu le veux bien, je te ferais bien rajouter de quoi logger ton script.

Cela donnerait :

#!/bin/sh
ARG=$1
if [ "${ARG}" = "start" ]; then
  depmod >> /tmp/eyetoy.log
  modprobe -r ov51x  >> /tmp/eyetoy.log
  modprobe ov51x  >> /tmp/eyetoy.log
  modprobe ov519_decomp >> /tmp/eyetoy.log
fi

Puis envoie le résultat des commandes suivantes :

ls -l /etc/init.d/init_eyetoy
ls -l /etc/rc?.d/*eyetoy*
cat /etc/init.d/init_eyetoy

Enfin redémarre et envoie le résultat de la commande :
cat /tmp/eyetoy.log

Hors ligne

#13 Le 03/05/2006, à 23:25

JoNas-fr

Re : Problème de script bash au démarrage

Voilà pour les 1ères commandes :

jonas@ubuntuT22:~$ ls -l /etc/init.d/init_eyetoy
-rwxr-xr-x  1 root root 200 2006-05-03 23:08 /etc/init.d/init_eyetoy
jonas@ubuntuT22:~$ ls -l /etc/rc?.d/*eyetoy*
lrwxrwxrwx  1 root root 21 2006-05-03 20:27 /etc/rc2.d/S99init_eyetoy -> ../init.d/init_eyetoy
lrwxrwxrwx  1 root root 21 2006-05-03 20:27 /etc/rc3.d/S99init_eyetoy -> ../init.d/init_eyetoy
lrwxrwxrwx  1 root root 21 2006-05-03 20:27 /etc/rc4.d/S99init_eyetoy -> ../init.d/init_eyetoy
lrwxrwxrwx  1 root root 21 2006-05-03 20:27 /etc/rc5.d/S99init_eyetoy -> ../init.d/init_eyetoy
jonas@ubuntuT22:~$ cat /etc/init.d/init_eyetoy
#!/bin/sh
ARG=$1
if [ "${ARG}" = "start" ]; then
  depmod >> /tmp/eyetoy.log
  modprobe -r ov51x  >> /tmp/eyetoy.log
  modprobe ov51x  >> /tmp/eyetoy.log
  modprobe ov519_decomp >> /tmp/eyetoy.log
fi

Et un petit reboot plus tard :

jonas@ubuntuT22:~$ cat /tmp/eyetoy.log
jonas@ubuntuT22:~$ ls -l /tmp/eyetoy.log
-rw-r--r--  1 root root 0 2006-05-03 23:14 /tmp/eyetoy.log

Le fichier est vide, mais ma cam ne marche toujours pas!!

Un petit lsmod m'indique que mon ov519_decomp n'est pas chargé, alors que ov51x l'est
(usbcore               104316  6 ov511,ov51x,snd_usb_audio,snd_usb_lib,uhci_hcd)
. Effectv me confirme cela en ne démarrant pas. Je tape les commandes de mon script à la main et bingo ma cam marche! Cependant un autre lsmod ne m'indique toujours pas mon ov519_decomp comme étant chargé (usbcore               104316  6 ov51x,ov511,snd_usb_audio,snd_usb_lib,uhci_hcd), étrange...


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne

#14 Le 03/05/2006, à 23:36

sksbir

Re : Problème de script bash au démarrage

JoNas-fr a écrit :

Bon alors ça ne marche pas. Et-ce je pense pour une (ou deux) des raisons suivantes :

1- le coup du déchargement/chargement du module ne passe pas trop
2- c'est un vilain petit canard de module (un module hacké damned!)

Je continue de mettre les mains dans le camboui on verra bien, en plus c'est en forgeant qu'on devient... wink

@sksbir
quelle classe en effet ce film! big_smile

c'est pas un film, c'est un flim d'abord...:P

Sinon,
sudo update-rc.d init_eyetoy remove
sudo update-rc.d init_eyetoy start 99 2 .

Je ne vois en effet pas l'intéret d'activer ce script à chaque changement de level au cours du boot : il suffit de l'activer une seule fois à la fin du boot, quand on passe au level2 (level final)

Activer une trace OK, mais plutot que de mettre des redirections à chaque commande, je conseille de rajouter l'instruction set -x en début de script après la 1ere ligne (#!/bin/sh) , puis d'aller voir dans /var/log les traces de l'exécution du script.

Par ailleurs, une fois le PC démarré et le script modifié comme indiqué, que donne la commande
sudo /etc/init.d/init_eyetoy start
?

Dernière modification par sksbir (Le 03/05/2006, à 23:37)

Hors ligne

#15 Le 04/05/2006, à 00:08

JoNas-fr

Re : Problème de script bash au démarrage

Quelle bourde incroyable de ma part!! Merci c'est réparé! ouf! tongue

Hum sur quel fichier dois-je m'attarder pour observer les log du script?

jonas@ubuntuT22:~$ ls /var/log
acpid                   debug.2.gz         lpr.log         messages.2.gz
acpid.1.gz              debug.3.gz         lpr.log.0       messages.3.gz
acpid.2.gz              dmesg              lpr.log.1.gz    news
acpid.3.gz              dpkg.log           lpr.log.2.gz    samba
acpid.4.gz              dpkg.log.1         lpr.log.3.gz    scrollkeeper.log
aptitude                dpkg.log.2.gz      mail.err        scrollkeeper.log.1
aptitude.1.gz           evms-engine.1.log  mail.err.0      scrollkeeper.log.2
aptitude.2.gz           evms-engine.2.log  mail.err.1.gz   syslog
auth.log                evms-engine.3.log  mail.err.2.gz   syslog.0
auth.log.0              evms-engine.4.log  mail.err.3.gz   syslog.1.gz
auth.log.1.gz           evms-engine.5.log  mail.info       syslog.2.gz
auth.log.2.gz           evms-engine.6.log  mail.info.0     syslog.3.gz
auth.log.3.gz           evms-engine.7.log  mail.info.1.gz  syslog.4.gz
base-config.log.1       evms-engine.8.log  mail.info.2.gz  syslog.5.gz
base-config-pkgsel.log  evms-engine.9.log  mail.info.3.gz  syslog.6.gz
base-config.timings.1   evms-engine.log    mail.log        user.log
btmp                    faillog            mail.log.0      user.log.0
btmp.1                  fontconfig.log     mail.log.1.gz   user.log.1.gz
cups                    gdm                mail.log.2.gz   user.log.2.gz
daemon.log              icecast            mail.log.3.gz   user.log.3.gz
daemon.log.0            installer          mail.warn       uucp.log
daemon.log.1.gz         kern.log           mail.warn.0     wtmp
daemon.log.2.gz         kern.log.0         mail.warn.1.gz  wtmp.1
daemon.log.3.gz         kern.log.1.gz      mail.warn.2.gz  Xorg.0.log
debian-installer        kern.log.2.gz      mail.warn.3.gz  Xorg.0.log.old
debug                   kern.log.3.gz      messages
debug.0                 kismet             messages.0
debug.1.gz              lastlog            messages.1.gz

Sinon pour la commande voici le résultat:

jonas@ubuntuT22:~$ sudo /etc/init.d/init_eyetoy start
Password:
+ ARG=start
+ '[' start = start ']'
+ depmod
+ modprobe -r ov51x
+ modprobe ov51x
+ modprobe ov519_decomp

Et ce qui est intéressant c'est qu'avant cette commande, effectv ne marchait pas et après celle-ci (l'éxécution du script, que ce soit à la main ou via le script comme ici) il marche (j'entend par effectv qui marche, ma webcam qui marche bien sûr!)...

Peut-être le problème (qui n'est plus trop un problème de démarrage en soit tongue ) est-il du au fait qu'un processus tier (genre X ou je ne sais quoi) n'est pas encore lancé au moment du chargement des modules, rendant alors inutile le script?


"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
B. E. - [url=[Merci de relire les règles]/benjedwards]Why History Needs Software Piracy[/url]

Hors ligne