Webcam su Linux: quando non funzionano subito

Ogni tanto le webcam su linux non funzionano subito. Quindi bisogna trovare un modo per farle andare. Il più delle volte non sappiamo che linux contiene gia le librerie per farle funzionare. Bisogna solo scoprire come fare.

LSUSB: Troviamo il dispositivo

La prima cosa da fare per per far andare le webcam su linux quando non funzionano è aprire il nostro fantastico coltellino svizzero: il terminale.
Da terminale dobbiamo eseguire il programma che ci permette di vedere il listato dei dispositivi USB riconosciuti:

lsusb

Otterremo come risultato una lista di dispositivi con i relativi indicatori di Vendor e Device:

BUS 003 Device 009: ID 093a:2600 Pixart Imaging, Inc. Typhoon Easycam USB 330k (newer)/...

Ad esempio nel risultato qui sopra possiamo identificare facilmente il tipo di webcam riconosciuto, Typhoon Easycam USB 330k, ed allo stesso modo possiamo identificare il vendor ovvero il produttore ed l’ID del device tramite il loro codice univoco: 093a:2600
In questo caso il Vendor è 093a e l’ID è 2600.

webcam su linux quando non funzionano
esempio di risultato di lsusb

A questo punto possiamo metterci alla ricerca di eventuali driver su Internet relativi a questo produttore ed a questo dispositivo.

Webcam: Su Linux funzionano gia

Una cosa che non in molti sanno, è che il 90% dei dispositivi sono già compatibili con il pinguino. Basta solo trovare la libreria che permette di farli funzionare.
Nel caso delle webcam, almeno per quelle che ho io, la libreria in questione è Video4Linux.

Dobbiamo assicurarci di averla installata sul nostro sistema e per farlo basta:

sudo apt install v4l1-0

Se è già presente ci verrà comunicato altrimenti procederà all’installazione. A questo punto dobbiamo vedere dove, nel nostro sistema è collocata la libreria. La troviamo tramite un locate

locate v4l1compat.so

Otterremo un risultato simile a /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so che di fatto è il percorso della libreria. Quindi non dobbiamo far altro che forzare l’avvio di questa libreria prima dell’avvio del programma che ci interessa.
Su linux Cheese è un’applicazione che permette di scattare foto o riprenderci tramite webcam quindi proviamo. Avviamo la libreria ed il programma.

env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so cheese

Se tutto funziona e ci vediamo abbiamo risolto il nostro problema!!

Avviare la libreria in modo globale

Quindi quando le webcam su linux non funzionano dobbiamo avviare la libreria

Per poter avviare questa libreria al caricamento del nostro account, dobbiamo andare ad esportarla tramite il nostro profilo.

Quindi con un nostro editor a scelta andiamo a modificare il file ~/.profile presente nella nostra Home. Andiamo ad aggiungere la seguente riga:

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so

Fatto questo eseguiamo un logout dal nostro utente e rientriamo, verrà cosi caricata la libreria Video4Linux e resa disponibile in modo globale.

Nota: Ho notato che (avendolo fatto su diversi pc) non sempre la libreria viene caricata. Quindi per avviare un programma particolare dobbiamo ricorrere alla chiamata sul singolo programma. Possiamo quindi modificare il file .desktop del programma in questione e modificare a voce come l’esempio seguente:

[Desktop Entry]
Version=1.0
Name=NomeProgramma
Comment=Questo è un commento
Exec=env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so NomeProgramma
Icon=/home/Percorso Immagine/icona.png
Terminal=false
Type=Application
Categories=Utility;Application;

Lascia un commento