En essayant de réhabiliter un vieux PC avec la dernière Ubuntu (Jaunty 9.04), je me suis confronté à un souci de configuration de ma webcam avec Skype : les gens avec qui je travaille sont sur Skype et ne sont pas informaticiens (juste pour éviter les « mais skype c’est mal, faut utiliser xxx » – mettre votre logiciel libre préféré à la place des xxx)
Skype reconnait bien ma webcam : une Logitech Quickcam Messenger. Mais l’image obtenu dans l’outil de test est brouillée. Cela ressemble à une espèce de neige qu’on avait sur les télés qui n’étaient pas réglées sur la bonne fréquence (la bonne vieille VHF/UHF avant le numérique et le tripe play pour les plus jeunes). Sauf que la neige est verte au lieu du nostalgique gris d’antan. Bref, pour en revenir à la webcam, c’est irritant que ça ne marche pas du premier coup avec Skype alors que cela fonctionne parfaitement avec d’autres logiciels (Cheese par ex.)
Un petit « lsusb » dans la console m’indique :
Bus 002 Device 004: ID 046d:08da Logitech, Inc. QuickCam Messanger
Tiens ? C’est indiqué « Messanger » alors qu’il s’agit d’une « Messenger ». Sûrement une faute de typo dans la base de données matériels.
Mais avec l’id « 046d:08da » aucun doute possible. Hop, mon Firefox, Google et quelques secondes plus tard, je lit que Skype s’appuie sur la librairie de vidéo pour linux (v4l) en version 1. Or, par défaut c’est la version 2 qui est activée dans Ubuntu Jaunty 9.04. Heureusement, Ubuntu intègre encore la v1 pour des raisons de compatibilité (bien vu).
La solution pour faire marcher tout ça ensemble passe par une « surcharge » de la variable d’environnement avant l’appel de skype pour forcer skype à utiliser l’ancienne lib :
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
Ok, alors pour ne pas à avoir à retaper ça tout le temps, il suffit de mettre la commande dans un script shell. Exemple pour moi qui ai un dossier « bin » dans mon home :
echo LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype > ~/bin/skype
chmod u+x ~/bin/skype
Comme mon dossier « bin » est déclaré dans la variable « PATH » en premier, c’est donc le skype de mon « bin » qui sera exécuté au lieu du « skype » installé.
2 commentaires
bonsoir;
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
Bon, c’est sympa, j’ai copié cela dans un terminal et ça fonctionne, peux tu me donner la marche à suivre pour le reste, car je ne maitrise pas du tout cette histoire de shell
mais je crois avoir compris que tu crée un script (gedit)
là ou je bloque c’est ou tu le sauvegarde et comment….
car le bin est en lecture seule, je ne peux pas y accéder
merci de me donner donc toute la démarche
alain
C’est pas normal que le « bin » dans ton dossier perso soit en lecture seule. Es-tu certain qu’il s’agit du bin dans ton home ? Pour vérifier, dans le terminal, tu fais :
cd ~/bin
Si cela fonctionne, c’est que ton bin est dans ton home. Pour le rendre accessible en écriture, tu peux faire, toujours depuis le terminal :
chmod u+rwx ~/bin
Si cela ne fonctionne pas, c’est que tu n’as pas encore de bin dans ton home. Pour le créer, dans ton terminal :
mkdir ~/bin
Et si tu n’as pas d’erreur tu peux faire la manip que je décris, c’est-à-dire depuis le terminal :
echo LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype > ~/bin/skype
chmod u+x ~/bin/skype
Peut-être te manque-t-il la partie concernant le PATH. Dans ce cas, depuis ton terminal, tapes :
echo PATH=~/bin:$PATH >> .bashrc
Il faut se déloguer/reloguer pour que ces modifs soient prises en compte. Après reconnexion, tu peux vérifier dans un terminal que c’est bien ton script qui est pris en compte, en tapant dans un terminal :
which skype
Il devrait t’afficher le chemin vers le skype de ton bin.