Pages : 1
#1 Le 12/04/2007, à 13: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, à 13:44
- all
Re : Je veux créer un script
vire les sudo et lance le script en sudo, enfin me semble
Hors ligne
#3 Le 12/04/2007, à 13: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, à 13: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, à 14: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, à 14: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, à 14:19
- yohann
Re : Je veux créer un script
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, à 14: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, à 15: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, à 17: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
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#11 Le 14/04/2007, à 11: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
Pages : 1