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.
Assumendo che il tipo di interfaccia sia supportato, e che la webcam funzioni, si rimanda a la Sezione 3.1.
Si veda la Sezione 3.2.
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.
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
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.
Si può consultare il sito delle mailing-list di Video4Linux su https://listman.redhat.com/mailman/listinfo/video4linux-list.