« Installer une webcam USB avec un noyau Linux 2.2 ou 2.4 » : différence entre les versions
Ligne 5 : | Ligne 5 : | ||
Dans ce document, je vais expliquer comment installer une WebCam sous Linux, mais je ne parlerai que de celles ayant un driver en GPL.<br /> Il existe plusieurs types de WebCam supportées par Linux avec des pilotes GPL : | Dans ce document, je vais expliquer comment installer une WebCam sous Linux, mais je ne parlerai que de celles ayant un driver en GPL.<br /> Il existe plusieurs types de WebCam supportées par Linux avec des pilotes GPL : | ||
* celles utilisant le modules '''uvcvideo''' (voir ci-dessous) | |||
<div class="note">Grâce à Microsoft (une fois n'est pas coutume), l'installation d'une webcam sous Linux va devenir beaucoup plus simple. En effet, pour avoir le logo "Vista certified", une webcam doit respecter la norme USB Video (l'équivalent de USB Storage pour les clefs USB). A priori la grande majorité des nouvelles webcams va donc supporter cette norme, et un seul driver sera nécessaire pour toutes les supporter. Ce driver existe déjà, il se nomme '''uvcvideo''' ; on le trouve [http://linux-uvc.berlios.de à cette adresse]. | <div class="note">Grâce à Microsoft (une fois n'est pas coutume), l'installation d'une webcam sous Linux va devenir beaucoup plus simple. En effet, pour avoir le logo "Vista certified", une webcam doit respecter la norme USB Video (l'équivalent de USB Storage pour les clefs USB). A priori la grande majorité des nouvelles webcams va donc supporter cette norme, et un seul driver sera nécessaire pour toutes les supporter. Ce driver existe déjà, il se nomme '''uvcvideo''' ; on le trouve [http://linux-uvc.berlios.de à cette adresse]. | ||
Version du 22 mars 2008 à 18:06
Installer une WebCam USB
Dans ce document, je vais expliquer comment installer une WebCam sous Linux, mais je ne parlerai que de celles ayant un driver en GPL.
Il existe plusieurs types de WebCam supportées par Linux avec des pilotes GPL :
- celles utilisant le modules uvcvideo (voir ci-dessous)
Si votre webcam est reconnue par le driver, les lignes suivantes (à la référence de la webcam près) devraient apparaître si vous tapez dmesg
:
uvcvideo: Found UVC 1.00 device Philips SPC 1000NC Webcam (0471:0332) usbcore: registered new driver uvcvideo USB Video Class driver (v0.1.0)
Bien qu'elle soit reconnue, elle peut ne pas fonctionner, car le driver est récent. C'est mon cas (Mandriva 2008.0). J'ai donc installé la dernière version comme expliqué sur le site :
$ svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk $ cd trunk $ make
puis en tant que root :
Enfin, je retire l'ancien driver de la mémoire puis charge le nouveau par :
# rmmod uvcvideo # modprobe uvcvideo
Et voilà, vous pouvez essayer les logiciels video, en commençant par luvcview (à compiler soi-même), ou mplayer par la commande :
ou en spécifiant plus d'options, comme par exemple :
Note : xawtv ne fonctionne pas avec ma webcam, car celle-ci produit une video au format MJPEG, non supporté par xawtv.
(mise à jour par LeaJice 3 fév 2008 à 21:57 (CET))
- celles utilisant le module CPiA (liste),
- celles utilisant le modules OV511 (liste),
- de nombreuses webcams sont supportées par le driver spca5xx (liste).
Après avoir consulté les listes retenez bien le nom du driver que vous devrez charger.
- Les Webcam Philips (Vesta, ToUCam), dont le driver est maintenant en GPL (sauf la partie, optionnelle, gérant la compression qui permet d'améliorer la fluidité). Voir la page de ce driver, une page sur l'installation de cette webcam sur FRLinux.net (en 2002) et un article faisant le point par rapport à la Mandriva 2007.
- la Quickcam Express de Logitech, de 2 manières :
- une application + module permettant de visionner la video (disponible ici). La compilation des sources produit 2 fichiers : quickcamex.o (le module) et quickcam (le visionneur). Créez le périphérique par "mknode /dev/quick c 180 80", chargez le module : "insmod ./quickcamex.o" ; vous pouvez visionner la webcam avec ./quickcam (et seulement ce logiciel). Pour faire des photos, utilisez un outil de capture d'écran.
- un driver "normal", i.e. compatible video4linux, disponible ici. Ce driver est livré en standard avec la Mandrake 8, il se nomme mod_quickcam.o et est chargé automatiquement au démarrage si la webcam est branchée. Si vous ne l'avez pas, récupérez-le tarball (cf lien précédent), décompressez-le ; un simple "make" le compilera, vous pouvez alors le copier dans /lib/modules/2.x.y pour l'installer. Pour le reste, remplacez ov511 par mod_quickcam ci-dessous, car il s'utilise de la même manière.
- depuis peu (02/2006) la Logitech Quickcam Messenger en utilisant qc-usb-messenger-1.1.tar.gz. L'installation est expliquée en suivant le lien.
- d'autres ? envoyez-nous vos expériences...
Dans la suite, la partie concernant les logiciels est commune à toutes les webcams, mais pour l'installation des drivers, je ne vais parler que des WebCams utilisant ov511 car les deux WebCams que j'ai testées (une Trust Sp@ce cam 300 USB et une Creative Video Blaster Webcam 3 USB) utilisent ce driver.
<pierre-yves.b chez wanadoo.fr> Pierre-Yves me signale que la procedure d'installation est presque identique pour les WebCams utilisant le driver CPiA (lui il a une Mustek Vcam-300 USB) : il suffit de changer (presque partout cela suffit) : ov511 par cpia.
Prérequis : Vous devez avoir installé un noyau supportant l'USB (c'est le cas du noyau des Mandrake 7.2, SuSE 7.0, RedHat 7.0 et sans doute de toutes les dernières versions des grandes distributions) :
- soit un noyau 2.2.14 et plus avec le patch USB, voir [/hardware/usbscan.php3#compil_noyau cet article].
- soit un noyau 2.4.x, voir [/kernel/kernel24.php3 cet article].
Installation et configuration du noyau
Si vous utilisez une distribution récente tout est déjà configuré correctement dans votre noyau, vous pouvez passer à la [#installation_driver suite]. Sinon nous allons devoir recompiler le noyau.
Pour cela, [/kernel/kernel.php3 voyez cet article]. Le mieux est d'utiliser un noyau 2.4.2 (dernière version à la date de rédaction de cet article) : il contient forcement les dernières versions des drivers mais vous pouvez toujours télécharger celles-ci sur les sites : OV511 : http://alpha.dyndns.org/ov511 ou CPiA : http://webcam.sourceforge.net. Pour compiler les drivers, vous devez, dans la rubrique USB Support activer en tant que modules les options suivantes (au moins) :
- USB support : ça coule de source.
- Preliminary USB device filesystem : ça ne coute rien et ça pourra vous servir (à reconnaitre un périphérique, et c.).
- L'un des drivers suivant : UHCI (Intel PIIX4, VIA, ...) (module : uhci.o) ou UHCI Alternate Driver (JE) (module : uhci.o) ou OHCI (Compaq, iMac, OPTi, SiS, ALi) (module : ohci.o) : suivant votre carte mère (regardez l'aide), c'est le driver des ports USB de votre ordinateur (si vous devez charger un driver uhci, préférez UHCI Alternate Driver (JE) sauf s'il plante votre ordinateur : il est parait-il plus performant).
et soit :
- vous activez (dans la même catégorie) USB OV511 Camera : si votre WebCam doit utiliser un driver OV511
- dans la catégorie Multimedia devices, sous catégorie Video For Linux : vous activez CPiA Video For Linux et CPiA USB Lowlevel dans le cas ou votre WebCam utilise un driver CPiA.
Enfin vous compilez et installez ce nouveau noyau. Un petit reboot et tout ce passera bien.
Installation et configuration des drivers
Si l'USB, n'est pas pris en charge par votre distribution il faut maintenant charger le driver USB de votre carte mère, c'est soit : ohci soit : uhci. Tapez :
modprobe usbcore (sans doute inutile) modprobe ohci ou modprobe uhci (inutile si votre ditribution supporte l'USB) modprobe videodev (sans doute inutile) modprobe ov511 ou modprobe cpia |
Pour automatiser ce chargement au démarage de votre machine, il y a deux solutions envisageables :
- vous insésez les lignes précédantes dans un script lancé au démarage de votre machine (exemple : à la fin de /etc/rc.d/rc.local)
- si vous n'avez qu'un seul périphérique video, vous pouvez ajouter en fin du fichier /etc/modules.conf (parfois aussi nommé /etc/conf.modules) la ligne :
alias char-major-81 ov511 |
ou
alias char-major-81 cpia |
ce qui demande au chargeur de modules de charger ov511 (ou cpia) si l'on accède à un périphérique dont le numéro de majeur est 81 (ie: un /dev/video).
A ce stade votre WebCam est prise en charge par le noyau, mais il reste à se procurer de quoi visualiser les videos en provenance de celle-ci.
Note(1) : Pour les WebCams OV511, vérifiez que votre WebCam est correctement détectée, tapez :
[root@duron]# tail -n 5 /var/log/messages
Mar 8 13:55:50 duron kernel: usb.c: registered new driver ov511
Mar 8 13:55:50 duron kernel: ov511.c: USB OV511+ camera found
Mar 8 13:55:50 duron kernel: ov511.c: camera: Creative Labs WebCam 3
Mar 8 13:55:50 duron kernel: ov511.c: Sensor is an OV7620
Mar 8 13:55:50 duron kernel: ov511.c: ov511 driver version 1.34 registeredSi vous voyez une ligne du type de celle en gras c'est que votre WebCam est reconnue, sinon c'est que quelque chose manque ou que votre WebCam n'est pas supportée par ce module (essayez l'autre, vérifiez dans les listes de matériels supportés).
Note(2) : Pour les WebCams OV511, si vous avez plusieurs WebCams OV511, il en faut préciser le nombre sur la ligne de commande, si vous avez 2 WebCams :
[root@duron]# modprobe ov511 cams=2 La première WebCam détectée sera /dev/video0 la seconde /dev/video1 et c.
Note(3) : Il est possible (non testé) de charger en meme temps un driver ov511, cpia et bttv chacun des périphériques détectés sera accessible via un /dev/videoxx
W3Cam
W3Cam est un programme qui permet de diffuser à la demande les images sur votre serveur WEB (vous devez avoir installé Apache (par exemple) pour pouvoir l'utiliser). Mais le paquetage W3Cam permet aussi de tester rapidement sa WebCam car il contient le programme (fonctionnant en ligne de commande) : vidcat qui lui ne nécessite pas d'installer Apache.
Compilation et installation
Comme toujours on peut récupérer un paquetage précompilé pour sa distribution, mais je préfère compiler moi même ce type de programme : je n'expliquerais pas comment faire, mais vous pouvez le faire en allant sur rpmfind.net par exemple. Nous allons récupérer les sources là : http://www.hdk-berlin.de/~rasca/w3cam/
Puis on décompresse le tout et on compile :
tar xzf w3cam-0.6.6.tar.gz cd w3cam ./configure make make install |
Maintenant tout est installé dans /usr/local/bin et /usr/local/cgi-bin, n'oubliez pas d'ajouter /usr/local/bin à votre PATH.
Faisons un petit test :
vidcat -d /dev/video0 -s 320x240 -f jpeg > ~/essai.jpeg |
Essayer de regarder le fichier ~/essai.jpeg. S'il est un peut sombre, c'est que les réglages automatiques n'ont pas pu se faire à la première prise de vue, essayez d'en faire d'autre : l'image s'éclaircie petit à petit. Ça y est votre WebCaebc fonctionne sous Linux !
Votre tête sur le Web !
Vous avez acheté une webcam, ce n'est certainement pas pour prendre des photos... Une première solution : mettez votre tête animée sur le Web. Pour cela vous devez avoir installé Apache sur votre machine. Puis copiez le contenu de /usr/local/cgi-bin vers le répertoire des cgi d'apache (sur la Mandrake 7.2 c'est /var/www/cgi-bin, sur la 7.0 c'est /home/httpd/cgi-bin) :
cp -R /usr/local/cgi-bin/* /var/www/cgi-bin |
Puis, éditez le fichier : /var/www/cgi-bin/w3cam.cgi.scf. Ci-après vous trouverez le mien :
# SCFF/sh |
Puis lancez votre navigateur web préféré (je crois que cela ne fonctionne pas avec MS IE mais je n'ai pas pu essayer...) et tapez l'url suivante : http://localhost/cgi-bin/w3cam.cgi : ça y est ça bouge !
Pour acceder à votre webcam depuis le net il suffit, dans l'adresse ci-dessus, de remplacer localhost par votre ip (que l'on peut obtenir en faisant ifconfig ppp0 si l'on est connecté via pppd) et c'est tout. Note : Si l'image que vous voyez semble provenir de Canal+ sans décodeur, c'est souvant que vous demandez une capture dans une résolution qui n'est pas supportée soit par le driver soit par la WebCam.
Motion
partie écrite par : Dimitri.
Vous suspectez des fantômes de venir hanter votre maison en votre absence sans jamais les avoir vus et bien voici ce qu'il vous faut. Motion permet de détecter les mouvements faits devant votre webcam et de les enregistrer. Plus d'infos:
http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome
Compilation et installation
L'auteur propose le rpm compilé ou les sources que l'on peut trouver ici: http://motion.technolust.cx/download/. Voici comment installer les sources :
$ tar zxvf motion-2.X.X.tar.gz $ cd motion-2.X.X $ ./configure (ajoutez ici : --prefix=/usr si vous voulez l'installer dans /usr et pas /usr/local comme c'est le cas par défaut) $ make $ su Password: xxxxxxx # make install |
Big Brother is watching You
motion s'installe par défaut dans /usr/local/bin
Pour tester le fonctionnement avec votre webcam, lancer:
[dimitri@micro quickcam]$/usr/local/bin/motion |
Motion crée à partir du répertoire où vous avez lancé l'exécutable (ici quickcam), une arborescence avec l'année, le mois, le jour, l'heure et la minute de l'enregistrement. A l'intérieur du dernier sous-répertoire on trouve les images jpeg datées avec en encadré les changements détectés. Exemples sur le site de Motion.
[dimitri@micro quickcam]$ ls -a 2001/05/26/09/57/ ./ ../ 36-00.jpg 36-01.jpg 36-02.jpg |
Maintenant que vous avez vu que tout fonctionne, vous allez pouvoir le paramétrer plus finement. Pour cela, vous avez 2 possibilités, par la ligne de commande (man motion) ou par un fichier de configuration 'motion.conf' à placer dans le même répertoire à partir duquel vous exécutez motion.
Exemple: Exécute motion sous forme de démon avec des images en ppm
[dimitri@micro quickcam]$ motion -D -p |
Vous trouverez un exemple de fichier de configuration dans le répertoire /usr/local/examples/motion-2.X.X .
Motion offre beaucoup de possibilités de configuration, comme stocker les évènements dans une base MySQL, vous envoyer des mails ou SMS pour vous prévenir, ou faire une vidéo des images capturées.
D'autres programmes
Ici, je vais mettre une liste de programmes qui peuvent utiliser votre WebCam.
- Xawtv : prévu pour regarder la TV avec Linux, ce programme fonctionne aussi parfois avec les WebCams (par exemple ça marche avec ma Trust Space Cam 300 mais pas avec ma Creative WebCam 3 !).
- vic : programme de video conférence sous Linux (existe sur la plupart des plateformes : Windows, Solaris, Mac, et...), sont fonctionnement n'est pas forcément évident mais il donne de bon résulat.
- ophone : programme de visiophone (non testé : un testeur ?).
- camstream : un bon remplacement pour XawTV (fonctionne avec toutes mes WebCams, mais c'est moins fluide).
- hasciicam : utiliser votre WebCam dans un terminal en ASCII (ça marche! et on se reconnait!)
- FreeWebFone : le nom parle tout seul (Dimitri : "J'ai testé le programme FreeWebFone sous Linux avec un ami qui était lui sous windows. Dans les 2 versions de ce produit, le processeur est pris à 100% lors de son utilisation, néanmoins l'application ne nécessite aucun réglage particulier et ne fonctionne pas trop mal.").
- qVix : <pierre-yves.b@wanadoo.fr> Pierre-Yves l'a testé mais n'a pas réussi à le faire fonctionner, moi non plus : peut-être faut-il attendre une meilleur version.
- Q-SeeMe : programme de video conférence utilisant le protocol CU-See-Me.
- GnomeMeeting : un clone de NetMeeting permettant de faire de la vidéo conférence même avec des gens préférants utiliser NetMeeting.
Copyright
© 2004 Fred, Dimitri Clatot
![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |