Come risolvere l'installazione di questo driver? Bus 001 Dispositivo 007: ID 05e1: 0b01 Syntek Semiconductor Co., Ltd


0

Ho una macchina fotografica ma non ho un driver per Linux. Quindi sto cercando di installare il driver per 05e1: 0b01 . Ma sta ancora fallendo.

La spina / disconnessione del dispositivo viene visualizzata correttamente /var/log/messages

Aug 19 19:15:47 example kernel: [39339.374902] usb 1-3: USB disconnect, device number 16
Aug 19 19:16:52 example kernel: [39404.464068] usb 1-3: new high speed USB device number 17 using ehci_hcd
Aug 19 19:16:55 example kernel: [39407.152965] usb 1-3: New USB device found, idVendor=05e1, idProduct=0b01
Aug 19 19:16:55 example kernel: [39407.152976] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Aug 19 19:16:55 example kernel: [39407.152984] usb 1-3: Product: USB Camera
Aug 19 19:16:55 example kernel: [39407.152990] usb 1-3: Manufacturer: Syntek
Aug 19 19:16:55 example kernel: [39407.152997] usb 1-3: SerialNumber: 0123456789AC
Aug 19 19:16:55 example mtp-probe: checking bus 1, device 17: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3"
Aug 19 19:16:55 example mtp-probe: bus: 1, device: 17 was not an MTP device

Passaggio 1: ho scaricato questo driver della fotocamera da http://sourceforge.net/projects/syntekdriver/

Passaggio 2: file README detto per farlo.

stk11xx-2.1.0]# make -f Makefile.standalone
make -C /lib/modules/2.6.40.3-0.fc15.i686/build SUBDIRS=/home/sun/Downloads/stk11xx-2.1.0 modules
make[1]: Entering directory `/usr/src/kernels/2.6.40.3-0.fc15.i686'
  CC [M]  /home/sun/Downloads/stk11xx-2.1.0/stk11xx-usb.o
/home/sun/Downloads/stk11xx-2.1.0/stk11xx-usb.c: In function ‘usb_stk11xx_probe’:
/home/sun/Downloads/stk11xx-2.1.0/stk11xx-usb.c:803:2: error: implicit declaration of function ‘init_MUTEX’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[2]: *** [/home/sun/Downloads/stk11xx-2.1.0/stk11xx-usb.o] Error 1
make[1]: *** [_module_/home/sun/Downloads/stk11xx-2.1.0] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.40.3-0.fc15.i686'
make: *** [driver] Error 2

Passo 3: Cercando su Internet, ho scoperto che devo aggiungere a stk11xx-usb.c queste nuove righe:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) 
#include <linux/semaphore.h> 
#else 
#include <asm/semaphore.h> 
#endif 
#define init_MUTEX(LOCKNAME) sema_init(LOCKNAME,1);

Passaggio 4: provare a compilare nuovamente non riuscito.

stk11xx-2.1.0]# make -f Makefile.standalone
make -C /lib/modules/2.6.40.3-0.fc15.i686/build SUBDIRS=/home/sun/Downloads/stk11xx-2.1.0 modules
make[1]: Entering directory `/usr/src/kernels/2.6.40.3-0.fc15.i686'
  CC [M]  /home/sun/Downloads/stk11xx-2.1.0/stk11xx-usb.o
  CC [M]  /home/sun/Downloads/stk11xx-2.1.0/stk11xx-v4l.o
/home/sun/Downloads/stk11xx-2.1.0/stk11xx-v4l.c:43:28: fatal error: linux/videodev.h: No such file or directory
compilation terminated.
make[2]: *** [/home/sun/Downloads/stk11xx-2.1.0/stk11xx-v4l.o] Error 1
make[1]: *** [_module_/home/sun/Downloads/stk11xx-2.1.0] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.40.3-0.fc15.i686'
make: *** [driver] Error 2
stk11xx-2.1.0]# 

Qualcuno può consigliarmi come risolverlo ora? Sono bloccato. Maggiori dettagli sono disponibili sul forum SourceForge ).

Risposte:


1

Il messaggio di errore che hai al passaggio 4 indica che il compilatore non è in grado di trovare il file videodev.hsul tuo sistema. Il file videodev.hviene fornito con il codice sorgente del kernel (sul mio sistema lo è linux-2.6.37.3/include/kernel/videodev.he dovrebbe trovarsi in una posizione comparabile su qualsiasi versione sorgente del kernel). Quando installi le intestazioni del kernel, questo file verrà installato su /usr/include/linux/videodev.h- e questo è ciò che ti manca.

Quindi, (1) installa il kernel-devel RPM fornito da Fedora o (2) potresti avere il download della versione del kernel appropriata (vedi uname -rma sembra che tu abbia linux-2.6.40.3) e quindi installare le intestazioni del kernel ( leggi il codice sorgente del kernel READMEe poi esegui make headers_install- potresti dover configurare il sorgente del kernel, ma probabilmente non dovresti farlo makee make installil kernel. Il tuo obiettivo è quello di ottenere una copia videodev.he tutti i file di intestazione di supporto dal sorgente del kernel al luogo utilizzabile sul tuo disco (probabilmente /usr/includee /usr/include/linux).

Se hai già /usr/include/linux/videodev.hsul tuo disco, verifica che la INCLUDEvariabile di ambiente punti /usr/include.

Ora guardando più da vicino, sembra che le persone di kernel.org siano obsoletevideodev.h e lo abbiano rimosso dal codice sorgente prima della versione 2.6.39.3 (e sostituito con videodev2.h? - non chiaro a questo punto) e sembra che tu abbia Linux-2.6 .40.3. Io suggerisco di ottenere una copia precedente del sorgente del kernel e copiare manualmente videodev.ha /usr/include/linux(o dovunque ora avete videodev2.h).


grazie finalmente non ha funzionato e sono tornato ai fornitori chiedendo i miei soldi indietro.
YumYumYum

1

Se è ancora effettivo, metti quel file in /usr/src/(uname -a)/include/linux.

Mi ha aiutato per Arch e il kernel 3.9.2-1


Questo può essere ripulito? Al momento si legge più come un commento o approssimazione di una risposta.
Austin T, francese,

0

videodev.h proviene da v4l1, che è cambiato molto nel supporto nei kernel più recenti, anche ottenere quell'intestazione (ora è v4l1-videodev.h) non risolverà il tuo problema.

È meglio rimuovere tutto il supporto v4l1 dal driver che si sta compilando. L'ho fatto ed è stato compilato bene per me ora.

la maggior parte del codice è in stk11xx-v4l.c nel file

static long v4l_stk11xx_do_ioctl(struct file *fp,
    unsigned int cmd, void __user *arg)

funzione. Sbarazzati di tutte le dichiarazioni dei casi fino a quando non vedi il commento v4l2.

Quindi eliminare i riferimenti alle inclusioni di videodev.h

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.