Contenu | Rechercher | Menus

Installation du module OV51x

Introduction

Les pilotes linux "officiels" ov511 et ov51x ne gèrent pas toujours la décompression JPEG, que nécessitent pourtant certaines webcams afin d'être utilisées avec les applications ne gérant pas le JPEG (amsn, kopete…). Ce tutoriel portera sur l'installation du pilote ov51x modifié en ce sens (voir cette page).

De nombreuses webcams sont supportées par ce module, notamment la Trust 320 spacecam et les Hercules Deluxe et Classic. Une liste de webcams à jour se trouve ici.

NB: L'installation est probablement la même pour les pilotes OV51x/OV511 "officiels" disponibles ici.

Vous devrez malheureusement refaire ces opérations à chaque nouvelle version du noyau.

Pré-requis

Support de la webcam

Avant toute chose, soyons certains que notre webcam est supportée par ce module. Tapez dans un terminal :

lsusb

Branchez votre webcam, puis retapez la commande précédente. Une nouvelle ligne devrait s'être ajoutée, du style :

Bus 001 Device 005: ID 05a9:4519 OmniVision Technologies, Inc.

(tous les chiffres seront sans doute différents, ainsi que les noms). Notez les deux suites de chiffres suivant le "ID" (ici, 05a9 et 4519), puis rendez vous sur cette page pour vérifier (grâce aux deux premières colonnes) que le pilote correspondant à votre webcam (dernière colonne) est bien ov51x ou ov511.

Divers

Vous devez savoir quelle version du noyau vous utilisez. Pour cela, tapez dans une console :

uname -r

Vous aurez également besoin des headers de votre noyau. Si vous utilisez le noyau fourni par défaut avec Ubuntu, installez-les (si vous avez compilé vous-même votre noyau, vous les avez déjà !) :

sudo apt-get install linux-headers-`uname -r`

Enfin, il faut installer le compilateur gcc qui va bien, car il n'est pas installé en standard sur Ubuntu :

sudo apt-get install gcc

Noyaux 2.6.17 ou inférieurs

La prise en charge des noyaux inférieurs au 2.6.17 a été supprimée depuis la version 1.* du module. Si vous utilisez un tel noyau, vous devez utiliser la version 0.5.4.

Il semblerait que sous edgy eft, les noyaux de type 2.6.17 nécessite également la version ov51x_jpeg. Se reporter à la suite du tutorial pour les noyaux 2.6.18 afin d'installer pour ces noyaux les pilotes fonctionnels.

Préparation du module

On télécharge les sources, on les décompresse et on se place dans leur dossier : récuperer les derniere sources ici :

http://www.rastageeks.org/downloads/ov51x-jpeg/

dans le code ci dessous, remplacer x.x.x par les numéro de version du dernier pilote
tar -xzvf ov51x-jpeg-x.x.x.tar.gz
cd ov51x-jpeg-x.x.x

Compilation

On compile le module en utilisateur normal et on l'installe en root :

make
sudo make install

Chargement des modules

On vérifie les dépendances :

sudo depmod

Et on charge le module :

sudo modprobe ov51x

Note : Sur la version 1.5.9, j'ai du faire :

sudo modprobe ov51x-jpeg

Et voilà ! La caméra est fonctionnelle, il ne reste plus qu'à la tester.

Pour que le module soit chargé automatiquement au démarrage, on rajoute simplement une ligne ov51x dans le fichier /etc/modules (ou /etc/modprobe.conf pour certaines distributions autres qu'Ubuntu) ;

sudo nano /etc/modules

Ajoutez la ligne et faite Ctrl+O pour enregistrer, puis Ctrl+X pour quitter (l'utilisation de "nano" a l'avantage de fonctionner sur toutes les distributions).

Noyaux 2.6.18 ou supérieurs

C'est le cas (par défaut) des versions d'Ubuntu supérieures à Feisty Fawn.

Préparation du module

Il faut tout d'abord télécharger et préparer le module. Le module est disponible sur rastageeks : allez donc y faire un tour pour voir le numéro de la dernière version, que l'on nommera dans la suite XXX).

On le télécharge donc, puis on le décompresse et on se place dans le dossier ainsi créé :

wget http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-XXX.tar.gz
tar xzvf ov51x-jpeg-XXX.tar.gz
cd ov51x-jpeg-XXX

Compilation

Pour cette étape, les headers du noyau sont nécessaires — ils sont déjà là si l'on a lu correctement les prérequis.

Depuis le noyau 2.6.19, le fichier config.h est devenu autoconf.h. Si vous avez un noyau 2.6.18, vous devez remplacer toutes les ocurrences de autoconf.h par config.h dans les fichiers du répertoire ov51x-jpeg-XXX. On peut le faire manuellement, ou on recopie simplement cette ligne qui nous permettra au passage de nous convaincre une fois de plus de la puissance du terminal :

 grep -l config.h * | xargs sed -i 's/config.h/autoconf.h/g'

On compile le module en utilisateur normal et on l'installe en root :

make
sudo make install

Chargement des modules

On vérifie les dépendances, puis on charge le module :

sudo depmod
sudo modprobe ov51x-jpeg

Et voilà ! La caméra est fonctionnelle, il ne reste plus qu'à la tester.

Pour que le module soit chargé automatiquement au démarrage, on rajoute simplement une ligne ov51x dans le fichier /etc/modules (ou /etc/modprobe.conf pour certaines distributions autres qu'Ubuntu) ;

sudo nano /etc/modules

Ajoutez la ligne et faite Ctrl+O pour enregistrer, puis Ctrl+X pour quitter (l'utilisation de "nano" a l'avantage de fonctionner sur toutes les distributions).

FAQ

Marche pas avec flash ?

Ben non, pour l'instant pas moyen de faire fonctionner ce pilote avec les messageries à base de flash. Flash player est pourtant censé prendre en charge V4L, qu'utilise ce pilote…

Solution de contournement : installer Webcam Studio, et sélectionner la webcam comme source. Le logiciel est en cours de développement, et l'image pour les webcams fonctionnant avec le pilote ov51x semble de qualité médiocre, mais c'est mieux que rien… Et n'hésitez pas à contribuer à son amélioration.

Des Martiens dans Kopete ?!?

Malheureusement, utiliser tel quel le module donne pour certaines webcam une image entièrement verte sous kopete. Afin de réparer ce léger désagrément, il faut charger le module en forçant la palette à 13 (fonctionne aussi avec 4, bien qu'il semble que ce soit plus gourmand).

Sous Hardy Heron, cette astuce empêche le chargement correct du module lors de la commande sudo modprobe ov51x-jpeg. Ca ne résout donc pas le problème de l'image verte.

A l'attention du créateur du tutorial, il ne serait pas plus facile de rajouter

options ov51x-jpeg force_palette=13

dans le fichier /etc/modprobe.d/options ? Pour l'ajouter automatiquement:

echo "options ov51x-jpeg force_palette=13" | sudo tee -a /etc/modprobe.d/options

(Cette solution est plus sécurisée et plus facile que la suite)

Si vous n'utilisez votre webcam qu'avec kopete, il suffit de remplacer (voir juste après comment faire) dans /etc/modprobe.conf (ou /etc/modules si ce dernier est vide) la ligne :

ov51x-jpeg

par

install ov51x-jpeg /sbin/modprobe -r ov51x-jpeg; /sbin/modprobe ov51x-jpeg force_palette=13;

Pour editer le fichier, entrez la commande;

sudo gedit /etc/modules

Mais si vous souhaitez jongler entre différentes applications (ou ne pas perdre trois heures à vous demander ce qui se passe le jour où vous en essaierez une autre), il va falloir ruser : certains logiciels n'apprécient pas que la palette soit forcée à 13. Voici donc une petite rustine.

ATTENTION : Cette astuce nécessite d'autoriser l'utilisateur à accéder à la commande /sbin/modprobe sans mot de passe, ce qui constitue une faille de sécurité. Il y a peu de chance pour que votre chat entre cette commande suivie d'un nom de module valide juste en marchant sur votre clavier, mais si c'était le cas vous pourriez être considéré comme pénalement responsable de toute la misère du monde !

On commence par éditer (en root !) le fichier /etc/modprobe.conf (ou /etc/modules si ce dernier est vide) avec notre éditeur préféré, et on y ajoute les lignes suivantes :

install ov51x-kopete /sbin/modprobe -r ov51x-jpeg; /sbin/modprobe ov51x-jpeg force_palette=13;
remove ov51x-kopete /sbin/modprobe -r ov51x-jpeg && /sbin/modprobe ov51x-jpeg;

Ainsi, charger le module ov51x-kopete rechargera en fait ov51x-jpeg avec l'option force_palette, et le décharger rechargea ov51x-jpeg sans option.

On va ensuite remplacer la commande kopete pour y ajouter le chargement et le déchargement du module personnalisé. Toujours avec notre éditeur préféré, on crée un fichier kopete_launcher, et on le remplit avec :

#!/bin/bash
sudo modprobe ov51x-kopete
shift 1
/usr/bin/kopete --nofork $@ && sudo modprobe -r ov51x-kopete

Puis on le rend exécutable et on crée un lien vers ce fichier dans /usr/bin :

chmod +x /le/chemin/vers/kopete_launcher
sudo ln -s /le/chemin/vers/kopete_launcher /usr/bin/kopete

Enfin, comme il a déjà été précisé, vous devez autoriser votre utilisateur à utiliser la commande modprobe sans mot de passe (attention, sécurité toussa… [bis]). Pour ce faire, on édite le fichier sudoers :

sudo visudo

et on y ajoute (ou on modifie en fonction) :

votre_login   ALL = NOPASSWD : /sbin/modprobe *

Voilà, ça devrait être bon.

Autres problèmes connus

Voir la FAQ officielle de rastageeks.

Tutoriel version simplifié avec technique pour la derniere version de skype



Le contenu de ce wiki est sous licence : CC BY-SA v3.0