<note> Mise à jour : à partir du noyau 2.6.26 et suivant le module UVC est inclu, Linus Torvald l'a annoncé lors de la sortie du “release candidate” 2.6.26-rc9. Très bonne nouvelle qui signifie une détection automatique des webcamera compatibles ! Si vous avez un noyau plus récent que le 2.6.26 vous n'avez normalement pas besoin de lire ce qui suit, sauf si votre matériel très récent nécessite la version de développement d'uvcvideo</note>
uvc , parfois appelé “linux-uvc” est un module permettant d'utiliser de nombreuses webcamera avec un noyau linux (série 2.6, v4l2 est nécessaire).
Pour être certain de la compatibilité de votre matériel comparez les identifiants usb et pas uniquement le nom du modèle. Les fabriquants ont parfois la mauvaise habitude de changer les composants d'un même modèle, seul l'identifiant usb est fiable. Pour le connaître utilisez :
lsusb
le résultat devrait ressembler à ceci :
thveillon@deb64:~$ lsusb Bus 008 Device 004: ID 046d:0990 Logitech, Inc. QuickCam Pro 9000
où l'identifiant usb est la séquence ID 046d:0990 .
Certaines distributions comme Debian dispose d'une commande permettant de mettre à jour la base de référence des identifiants usb, à effectuer avant “lsusb” :
su update-usbids
Plusieurs cas sont possibles, Ubuntu ou Sidux par exemple intègrent une version de uvc, votre matériel sera donc identifié et utilisé dès le démarrage sans intervention de votre part. Pour savoir si le module uvcvideo est chargé tapez :
lsmod | grep uvcvideo
Si la commande renvoie quelque chose c'est gagné.
Pour savoir si uvcvideo est présent sur votre système mais non chargé :
find /lib/modules/$(uname -r) -name uvcvideo*
ou
/sbin/modprobe -l | grep uvcvideo
Si la commande renvoie une ligne se terminant par “uvcvideo.ko” le module est présent, vous pouvez le charger avec la commande :
su modprobe uvcvideo
D'autres distributions comme Opensuse proposent un paquets sur leurs dépôts près à être installé, dans ce cas il suffit de faire une recherche dans votre gestionnaire de paquets habituel. Un redémarrage peut-être nécessaire pour que la camera fonctionne, mais la plupart du temps charger le module avec “modprobe” est suffisant.
Debian (et dérivés) dispose d'un outils de compilation de module nommé “module-assistant” ou “m-a” en abrégé, pour installer uvc il suffira d'installer et d'utiliser “module-assistant” :
su apt-get install module-assistant m-a a-i linux-uvc modprobe uvcvideo
<note>La première méthode “historique” permet de récupérer les anciennes sources de uvcvideo, qui ne sont plus développées. Elle peut être utile pour des noyaux anciens (<2.6.20) pour lesquels la compatibilité avec les dernières sources peut-être cassé. Pour tous les autres cas utilisez le nouveau dépôt présenté dans le paragraphe “nouveau dépôt Mercurial”</note>
Méthode “historique”
Dernier cas, si un paquet n'est pas disponible pour votre système, ou si celui proposé est trop ancien pour reconnaître votre webcam toute neuve, téléchargez les sources de développement et compilez uvc pour votre système. Les sources de développement sont en modification permanente, il est possible qu'elle soient “cassées” à un moment donné et que vous deviez attendre quelques jours avant de récupérer une version fonctionnelle. C'est la contrepartie d'avoir accès aux dernières fonctionnalités.
Pour utiliser les sources “svn” de développement, vous devez installer le paquet “subversion” en plus d'un environnement de compilation (“gcc”, “make” et les “sources” ou “headers” du noyau). Une fois cela fait utilisez :
mkdir linux-uvc && cd linux-uvc svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/ cd trunk make su make install modprobe uvcvideo
Nouveau dépôt Mercurial
Depuis son intégration au noyau uvcvideo a migré dans un nouveau géré par mercurial et non plus subversion. Pour récupérer et compiler ce dépôt vous devrez disposer d'un environnement de compilation (“gcc”, “make” et les “sources” ou “headers” du noyau), et également installer “mercurial”. Sur Debian ou Ubuntu l'installation de mercurial s'effectue avec un simple
apt-get install mercurial
Ensuite placez vous dans un répertoire quelconque où vous effectuerez la compilation, ici nous créons ce répertoire “compil” avant de nous y placer et de récupérer les sources :
mkdir ~/compil cd ~/compil hg clone http://linuxtv.org/hg/~pinchartl/uvcvideo/ cd uvcvideo
À ce stade vous avez récupéré les dernières sources, avant de procéder à la compilation il est bon de jeter un œil aux fichiers “README” et “INSTALL” présents dans le répertoire des sources. La compilation basique et l'installation sont aussi simple que
make all sudo make install sudo modprobe uvcvideo
Attention si vous utilisez un noyau supérieur à 2.6.26 dans lequel uvcvideo est inclu, la commande “make install” écrasera le module d'origine avec le nouveau module fraîchement compilé, il ne sera plus possible de revenir en arrière à moins de réinstaller le noyau. Pour éviter ça vous pouvez faire une copie de sauvegarde du répertoire de modules “ /lib/modules/$(uname -r) ” avant l'installation.
Si vous rencontrez des erreurs, où que votre version de v4l2 ou v4l-compat n'est pas compatible avec la dernière version de uvcvideo, vous devrez également récupérer les dernières sources pour ces modules. Ça ne devrait pas se produire pour des noyaux plus récents que 2.6.20. En cas de besoin consultez le nouveau wiki du projet .
Récupérer une archive compressée des dernières sources
Si vous ne voulez, ou ne pouvez pas utiliser le dépôt mercurial, vous pouvez télécharger des archives mises à jour très régulièrement, au format tar.bz2 ou tar.gz. La compilation s'effectue ensuite comme précédemment avec “make all” et “sudo make install”.
Une fois chargé le pilote uvc ne s'utilise pas directement, il va faire office de “passeur” entre les applications, le noyau et votre webcamera.
Pour utiliser votre caméra vous pouvez chercher du côté de Cheese qui permet d'appliquer des effets et de prendre des clichés ou des vidéos, Guvcview qui est un programme très complet donnant accès à tous les réglages avancés de la caméra, permet de capturer des images et des videos, appliquer des effets…
De nombreux autres programmes permettent de détecter les mouvements et transformer votre webcam en outils de video-surveillance (“motion”, “gmotionlive”), d'autres permettent d'envoyer le flux d'une caméra vers un site internet ou un autre poste (“camstream”, “webcam”…) Une recherche dans votre gestionnaire de paquet vous en dira plus.
Amusez-vous bien !
Le site linuxtv.org qui héberge uvcvideo, mais également v4l2.