Skype et Logitech Quick Messenger sous Ubuntu 9.04

27 août 2009

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é.

source : http://bugzilla.kernel.org/show_bug.cgi?id=11741