5. Risoluzione dei problemi

5.1. Aiuto, ho una webcam USB ma non so esattamente qual è il modello e/o il produttore. Che faccio?

Usare il comando lsusb; può fornire anche informazioni sugli altri dispositivi USB installati sul proprio sistema:

   $  lsusb
   Bus 007 Device 001: ID 0000:0000
   Bus 006 Device 001: ID 0000:0000
   Bus 005 Device 001: ID 0000:0000
   Bus 004 Device 001: ID 0000:0000
   Bus 003 Device 003: ID 0545:8080 Xirlink, Inc. IBM C-It WebCam
   Bus 003 Device 002: ID 046d:0840 Logitech, Inc. QuickCam Express
   Bus 003 Device 001: ID 0000:0000
   Bus 002 Device 003: ID 051d:0002 American Power Conversion Back-UPS Pro 500/1000/1500
   Bus 002 Device 001: ID 0000:0000
   Bus 001 Device 001: ID 0000:0000

I numeri dopo 'ID' sono i numeri del produttore e del prodotto. Si possono confrontare con quelli presenti nel Linux USB ID catalog.

Se lsusb non è disponibile, e si possiede il supporto per i filesystem /proc e USB, si può provare con il seguente comando:

   $  cat /proc/bus/usb/devices

Si dovrebbe vedere un output che comprende anche (ma non solo) ciò che segue:

   T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=3 Spd=12 MxCh=0 
   D:  Ver= 1.01 Cls=ff(vend.) Sub=ff Prot=ff MxPS=8 #Cfgs=1 
   P:  Vendor=0545 ProdID=8080 Rev= 3.0a 
   S:  Product=USB IMAGING DEVICE

La linea che inizia con "T:" indica il bus al quale è connesso il dispositivo USB. "P:" indica (ovviamente) il produttore e l'ID del prodotto, che sono elencati su linux USB Project homepage.

5.2. Aiuto, non trovo la webcam in /dev!

Assumendo che il tipo di interfaccia sia supportato, e che la webcam funzioni, si rimanda a la Sezione 3.1.

5.3. Aiuto, vedo il dispositivo (fisicamente e in /dev), ma non riesco ad accedervi!

Si veda la Sezione 3.2.

5.4. Aiuto, il driver per la mia webcam è disponibile solo come sorgente! Da dove comincio?

Per prima cosa, verificare se nella propria distribuzione c'è il driver pre-compilato. In tal caso si può caricarlo come si farebbe con un modulo. Se non c'è, ci si assicuri di avere i sorgenti del kernel installati. Serviranno anche, come minimo, GNU make, gcc, binutils e forse altri programmi, a seconda della distribuzione che si sta utilizzando. (Gli utenti Debian dovrebbero consultare la prossima sezione per istruzioni specifiche per tale distribuzione).

Si scarichi il codice sorgente del driver (che in questo esempio si chiamerà src.tar.gz) e lo si decomprima/estragga dall'archivio:

   $  tar -xvzf src.tar.gz

Dopodiché, si passi nella directory dei sorgenti del kernel:

   #  cd /usr/src/linux

Si esegua make:

   #  make oldconfig # make dep

Ora si passi nella directory in cui si è estratto il sorgente del driver e si legga con attenzione il file README e/o INSTALL per sapere come effettuare la compilazione. In genere questa operazione richiede qualcosa del tipo "make", "make all" o "make install". Se tutto viene compilato correttamente, resta soltanto da caricare il nuovo modulo con modprobe. in caso di problemi, si veda la la Sezione 5.7.

5.5. Uso Debian GNU/Linux. C'è un modo più semplice per compilare il driver?

Secondo il modesto avviso di chi scrive, è molto più semplice usare kernel-package. Innanzitutto, si installi il relativo pacchetto e tutte le dipendenze usando apt-get. Fatto questo, si installino i sorgenti del kernel che si vuole usare (ad esempio: apt-get install kernel-source-2.X.X). Si estragga tale sorgente con tar -xvjf e si crei un link simbolico chiamato linux che punti ad esso:

   #  ln -s /usr/src/kernel-source-2.X.X /usr/src/linux
 

A questo punto, si cambi directory con cd /usr/src/linux e si esegua make-kpkg clean, seguito da make menuconfig oppure make xconfig se si sta compilando un nuovo kernel. Si può quindi usare make-kpkg kernel_image e installare il nuovo pacchetto del kernel, creato in /usr/src, con il comando dpkg -i ../kernel-image-2.X.X. Ora, si può prelevare il sorgente del driver usando apt. Nel caso della Quickcam Express ad esempio, il pacchetto è qc-usb-source:

   #  apt-get install qc-usb-source

...si scompatti l'archivio:

   #  tar -xvzf qc-usb-modules.tar.gz

In tal modo il sorgente verrà estratto e messo nella directory /usr/src/modules. Il passo finale, mentre si è ancora in /usr/src/linux, è quello di compilare i moduli con kernel-package:

   #  make-kpkg modules_image

Si installi il nuovo pacchetto, che si trova in /usr/src/ e si chiama qc-usb-modules-[arch].deb, usando dpkg -i. Infine, si carichi il modulo:

   #  modprobe quickcam

In caso di problemi, si consulti la documentazione in /usr/share/doc/kernel-package

5.6. Aiuto, la mia webcam è supportata da un driver che va aggiunto come patch al kernel! Che faccio?

Si consulti la sezione relativa all'applicazione delle patch nel Kernel-HOWTO messo a disposizione da The Linux Documentation Project.

Secondo chi scrive, l'applicazione della patch può avvenire nel seguente modo, veloce ma non garantito: ci si assicuri che tutti i requisiti riassunti nella la Sezione 5.4 siano soddisfatti. Da linea di comando o da un terminale grafico come xterm, si passi nella directory contenente il sorgente del kernel che si sta utilizzando (o che si userà) e a cui si vuole applicare la patch.

   #  cd /usr/src/linux 
   #  patch -p1 -E patch.diff

Si dovrebbe ricevere conferma del successo dell'operazione. A questo punto si può usare make menuconfig, o qualunque altro modo si preferisca, per ricompilare il kernel abilitando il supporto per l'hardware che si possiede. Se qualche modifica non è andata a buon fine, o si incontrano problemi, si può consultare, oltre ai documenti citati in precedenza, anche man patch e la la Sezione 5.7.

5.7. Voglio contribuire. Dove posso trovare più informazioni?

Si può consultare il sito delle mailing-list di Video4Linux su https://listman.redhat.com/mailman/listinfo/video4linux-list.

5.8. Voglio contribuire a Video4Linux! Con chi mi metto in contatto?

Si consulti questa pagina.