Video della webcam verde con Skype per Linux su Ubuntu

Aggiornamento: guida ancora valida per Ubuntu 9.04, Jaunty Jackalope e Ubuntu 9.10 Karmic Koala.

Scenario

La mia compagna è partita per uno stage e per mantenerci in contatto utilizziamo entrambi Skype.

Purtroppo, sin dal primo tentativo di effettuare una videochiamata, la mia webcam mostrava una laconica schermata verde. Questo ovviamente faceva adirare non poco la mia ragazza impossibilitata dal vedermi, maledicendo ogni forma di Linux. Che poi, dico io, come si fa a non amarlo il pinguino anche se ti fa arrabbiare!

skype_video_verde

Bestemmie a parte, ho tentato di vederci chiaro e sono arrivato alla radice del problema trovando una soluzione che mi permettesse di non essere lasciato in tronco.

Inoltre sarebbe stato difficile spiegare agli amici di essere stato abbandonato a causa di un bug di Ubuntu, anche se con una storia del genere finirei sicuramente in homepage su Digg

Il bandolo della matassa

In realtà tutto è ricollegato al modo in cui è cambiata la gestione delle webcam con il kernel fornito in Ubuntu Intrepid, esattamente il 2.6.27.

Come spiega Hans de Goede sul suo blog, la maggior parte delle cam supportate dal nuovo driver gspca usano una compressione per i dati basata su una varietà di algoritmi proprietari, che nessuna applicazione nativamente sa come gestire. Il vecchio driver risolveva il problema operando una conversione di formato all’interno del kernel, ma questa caratteristica è stata rimossa nella nuova versione in quanto ritenuta una soluzione potenzialmente pericolosa e non elegante.

Lo stesso Hans dunque si è rimboccato le maniche partorendo libv4l che ristabilisce l’ordine naturale delle cose.

Come fare

Purtroppo il pacchetto distribuito sul sito ufficiale di skype non è stato patchato per usare tale libreria, per cui è necessario un workaround al fine di evitare che gli utilizzatori di Linux sparsi per tutto il mondo rimangano tristemente single.

Su Ubuntu Intrepid è necessario innanzitutto installare, se già non presente, libv4l o lib32v4l ( amd64) e assicurarsi di aver prima rimosso qualsiasi precedente versione.

Il repository di Stéphane Marguet contiene una versione fresca fresca di impacchettazione, per tutte le altre distribuzioni rivolgersi al proprio spacciatore di pacchetti di fiducia o compilare da sorgente.

Il consiglio è quello di aggiungere il repository, installare o aggiornare solo libv4l e poi commentare la riga corrispondente nel sources.list per evitare che vengano coinvolti altri pacchetti nell’aggiornamento. Non inserisco il link diretto perché il software è in continua evoluzione.

Adesso è necessario procurarsi skype dai repository Medibuntu, che stando a quanto recita il changelog integra l’hack necessario al corretto funzionamento della webcam

skype (2.0.0.72-0medibuntu4) intrepid; urgency=low

* Add a hack for libv4l (LP: #260918):
- debian/skype.wrapper.in, debian/rules: rename the orig skype binary and
add a wrapper to call it with LD_PRELOAD
- debian/control: depends on lib32v4l-0 [amd64], libv4l-0 [!amd64].

-- Lionel Le Folgoc <mrpouit@ubuntu.com> Fri, 17 Oct 2008 20:25:47 +0200

ed il gioco è fatto!

L’alternativa

Se non doveste aver successo, disinstallate questa versione e installate quella del sito ufficiale e provate a far partire il programma con la seguente sintassi

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

verificando poi il funzionamento della webcam. Se tutto è andato a buon fine, allora possiamo creare un piccolo script che ci permetta di evitare di scrivere manualmente la stringa di cui sopra.

I comandi da lanciare in sequenza sono

cd /usr/bin

sudo mv skype skype.real

gksudo gedit skype

Si aprirà la finestra di Gedit, all’interno della quale dovremo incollare

#!/bin/sh

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype.real "$@"

Salviamo e rendiamo eseguibile il tutto

sudo chmod +x skype

testiamo il tutto ancora una volta, stavolta usando il normale collegamento nel menu.

L’ho scampata bella

Adesso con la mia compagna va tutto liscio, niente più litigi e la qualità della vita è migliorata sensibilmente.

skype_funziona

Per caso qualcuno ha anche una patch per sistemare i grossi bachi presenti nel sistema chiamato donna?