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 12/04/2007, à 14:34

fab56

Je veux créer un script

Voila,

comme je met souvent à jour mon noyau sous Edgy, je suis à chaque fois obligé de re-compiler le pilote de ma webcam.
Je sais comment faire, met j'aimerais écrire un script qui automatise le processus pour mes parents quand il veulent utiliser ma quickcam.

Voici les commande à exécuter les une après les autres

sudo mknod /dev/video0 c 81 0
sudo mknod /dev/video1 c 81 1
sudo chmod a+rw /dev/video0
sudo ln -s /dev/video0 /dev/video
lsmod | grep videodev
sudo rmmod quickcam           
sudo rmmod videodev  
cd qc-usb-messenger-1.5         
sudo make clean && make all
sudo make install
sudo modprobe videodev
sudo modprobe quickcam

après je pense le rendre capable de télécharger les sources lui-même sur le site
de vérifier si tous les paquets requis sont correctement installés (linux-headers, binutils, ...)

et après peut-être q'une version graphique pourait être intéressante avec Python.
Mais pour l'instant il faut qu'il execute juste les commandes cité plus haut.

J'ai essayé de le mettre dans un script avec #!/bin/bash mais il y a un problème avec les sudo.

Merci d'avance.

Hors ligne

#2 Le 12/04/2007, à 14:44

all

Re : Je veux créer un script

vire les sudo et lance le script en sudo, enfin me semble hmm

Hors ligne

#3 Le 12/04/2007, à 14:45

fab56

Re : Je veux créer un script

ok je vais essayé. mais par contre comment détecter si le script est en sudo.
pour que quand l'utilisateur fait monscript.sh
il l'alerte :

Eh oh, comment veux-tu que j'installe une webcam si j'ai pas les droits ?

Hors ligne

#4 Le 12/04/2007, à 14:53

yohann

Re : Je veux créer un script

ce qu'il voulait dire c'est que imagine que ton script s'appel:

compil_web_cam.sh

tu lancera sudo compil_web_cam.sh

et dans le script, pas besoin de sudo, vu que le script sera lané en root.

Met une ligne en tout premier : #!/bin/bash
recopie tes commandes , vire les sudo

puis donne les droit en execution au fichier:
sudo chown root:root compil_web_cam.sh
sudo chmod 700 compil_web_cam.sh

ensuite tu peux ajouter ton script dans /usr/sbin
mv compil_web_cam.sh /usr/sbin/compil_web_cam.sh

enfin lance tno script:

sudo compil_web_cam.sh

bonne chance


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#5 Le 12/04/2007, à 15:00

fab56

Re : Je veux créer un script

et donc si je fais compil_web_cam.sh tout seul ça marchera pas ?

Hors ligne

#6 Le 12/04/2007, à 15:05

fab56

Re : Je veux créer un script

Euh aussi comment tester l'existance d'un fichier

Si je fais :

if [ ! test -d ./qc-usb-messenger-1.5 ] then
echo Le dossier source du pilote qc-usb-messenger ne semble pas avoir été trouvé.
echo Le téléchargement va être effectué
wget http://home.mag.cx/messenger/source/qc-usb-messenger-1.5.tar.gz
tar -jxvf qc-usb-messenger-1.5.tar.gz

Hors ligne

#7 Le 12/04/2007, à 15:19

yohann

Re : Je veux créer un script

fab56 a écrit :

et donc si je fais compil_web_cam.sh tout seul ça marchera pas ?

ben non t'auras pas les droits, si tu veux pouvoir lancer le script en sans faire de sudo:

il faut utiliser le set uid, a ce moment là le script sera toujours considérer comme étant lancé par root.
(mais cela peut potentiellement introduire une faille de sécurité dans ton système, si par exemple qqun modifie ton script, ce qui ne devrait pas arrivé s'il est bien en 711), cela dit je crois que qd même c'est pas super conseillé mais renseigne toi.

pour tester l'existence d'un fichier malheureusement je ne sais pas


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#8 Le 12/04/2007, à 15:50

fab56

Re : Je veux créer un script

pour tester si l'utilisateurs à les droits,j 'ai trouvé ceci :

if [ ! "$UID" -eq "0" ]; then
       echo Ce script doit être exécuté par le superutilisateur et avoir les droits.
       echo Essayez plutôt avec la commande \'sudo ./qc-compile.sh\'.
       exit 1

fi

j'ai adapté le texte et ca marche nickel.

Hors ligne

#9 Le 12/04/2007, à 16:43

fab56

Re : Je veux créer un script

bon ca donne ça

#!/bin/bash
VERSION=1.5
if [ ! "$UID" -eq "0" ]; then 
        echo Ce script doit être exécuté par le superutilisateur et avoir les droits.
        echo Essayez plutôt avec la commande \'sudo ./qc-compile.sh\'.
        exit 1

fi

mknod /dev/video0 c 81 0
mknod /dev/video1 c 81 1
chmod a+rw /dev/video0
ln -s /dev/video0 /dev/video

rmmod quickcam           
rmmod videodev 

if ! test -d qc-usb-messenger-$VERSION; then
        echo Pilote non trouvé. Téléchargement en cours ...
        wget http://home.mag.cx/messenger/source/qc-usb-messenger-$VERSION.tar.gz
        tar -zxvf qc-usb-messenger-$VERSION.tar.gz

fi

cd qc-usb-messenger-$VERSION

apt-get install linux-headers-`uname -r`
ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build

make clean && make all
make install

modprobe videodev
modprobe quickcam

maintenant faut que je teste mieux ce truc.
Ce serait bien de mettre des signaux genre "Paramètarfe de la webcam", "Installation", etc

Hors ligne

#10 Le 12/04/2007, à 18:34

yohann

Re : Je veux créer un script

bravo

sinon paramétrage sonne mieux que paramètarfe, mais c'est une question de point de vue j'imagine big_smile


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#11 Le 14/04/2007, à 12:51

fab56

Re : Je veux créer un script

chez moi il ne marche pas correctement, peut l'essayer et me dire si ca fonctionne ?

Hors ligne