View Full Version : Webcam, tutto nero!
Salve ragazzi,
Oggi a mio fratello ( che dopo ha passato a me ) hanno regalato una webcam wb3400t della Trust.
Premetto che uso Gutsy e kernel 2.6.23-rc5 compilato da me.
Quando l'ho attaccata, ed ho visto il dmesg, tutto mi sembra essere filato liscio, la rileva e carica i moduli.
[ 1092.355409] usb 3-1: SN9C103 PC Camera Controller detected (vid:pid 0x0C45:0x 60AF)
[ 1092.431306] usb 3-1: PAS202BCB image sensor detected
[ 1092.938875] usb 3-1: Initialization succeeded
[ 1092.938933] usb 3-1: V4L2 device registered as /dev/video0
[ 1092.938944] usb 3-1: Optional device control through 'sysfs' interface ready
Allora mi dico "proviamo con aMsn". Lo faccio partire, vado su Preferenze, vado sulla configurazione della webcam e mi trovo il fatto che me la rileva, ma, si vede tutto nero!
Provo con xawtv, tutto nero. Provo ekiga, funziona l'audio ( ha un microfono incorporato ) ma non si vede nulla.
Perchè fa così? Ho Googlato ma non ho trovato nulla :confused:
La cosa "comica" è che lo fa pure con una scheda tv con acquisizione analogica ( monta il saa7134 ). Il DVB funziona, mentre composite e svideo si vede nero ( quando me lo rileva che ci sta )
Datemi una mano :cry:
Adesso funziona però:
1) nella configurazione è nero, ma quando ho attivato la sessione di webcam si vede
2) la con cui apro la sessione non vede quasi nulla
3) fa 2 frame al secondo
Adesso su aMsn si vede, anche nella configurazione.
Però non capisco perchè su zoneminder non va :confused:
La cosa "brutta" è che adesso i driver per webcam sono scritte solo in v4l2 e molti programmi non lo supportano :rolleyes:
Poi ho notato che è sensibilissimo alla luce, quando la metto fuori vedo bianco e basta :(
ilsensine
10-09-2007, 12:02
La cosa "brutta" è che adesso i driver per webcam sono scritte solo in v4l2 e molti programmi non lo supportano :rolleyes:
Le API V4L1 dovrebbero essere disponibili tramite emulazione, per molti driver. Sono pochi quelli che non offrono l'emulazione V4L1.
Poi ho notato che è sensibilissimo alla luce, quando la metto fuori vedo bianco e basta :(
Molte webcam, anche datate, hanno un aggiustamento automatico del guadagno in funzione della luminosità. Strano che la tua non lo abbia. Comunque, le API V4L2 consentono di regolare la luminosità, contrasto ecc. -- purché il programma che usi ti permetta di variare questi parametri ovviamente.
nb non usare il 2.6.23-rc5. kernel panic assicurato dopo un certo tempo di utilizzo della rete. Usa un -git successivo.
Le API V4L1 dovrebbero essere disponibili tramite emulazione, per molti driver. Sono pochi quelli che non offrono l'emulazione V4L1.
E come si fa ad usare questa emulazione?
Dato che ho provato con xawtv, cheese, qccam, camorama, ma tutti mi danno schermo nero.
Poi invece con aMsn, ekiga e fbwebcam và. Però, su aMsn, quando mando la sessione di webcam, l'immagine è molto sgranata e non si vede quasi nulla ( mentre da me vedo perfetto )
Il problema comunque ce l'ho anche con una scheda tv con aquisizione analogica, trova composito e svideo ma si vede tutto nero. Su dmesg non mi da nessun errore :confused:
Molte webcam, anche datate, hanno un aggiustamento automatico del guadagno in funzione della luminosità. Strano che la tua non lo abbia. Comunque, le API V4L2 consentono di regolare la luminosità, contrasto ecc. -- purché il programma che usi ti permetta di variare questi parametri ovviamente.
nb non usare il 2.6.23-rc5. kernel panic assicurato dopo un certo tempo di utilizzo della rete. Usa un -git successivo.
Su aMsn c'è la possibilità di correggere l'immagine, ma non mi fa cambiare le opzioni.
Adesso sto usando la git1, ho provato ad usare anche il 2.6.22.5 ma non cambia nulla :(
ilsensine
10-09-2007, 15:34
E come si fa ad usare questa emulazione?
Dato che ho provato con xawtv, cheese, qccam, camorama, ma tutti mi danno schermo nero.
xawtv usa tranquillamente v4l2
Non vorrei che il problema sia diverso; prova ad es:
killall artsd
xawtv -c /dev/video0 -noxv
e vediamo se cambia qualcosa...
This is xawtv-3.95.dfsg.1, running on Linux/x86_64 (2.6.22-11-generic)
xinerama 0: 1280x800+0+0
X Error of failed request: XF86DGANoDirectVideoMode
Major opcode of failed request: 137 (XFree86-DGA)
Minor opcode of failed request: 1 (XF86DGAGetVideoLL)
Serial number of failed request: 13
Current serial number in output stream: 13
v4l-conf had some trouble, trying to continue anyway
Warning: Cannot convert string "-*-ledfixed-medium-r-*--39-*-*-*-c-*-*-*" to type FontStruct
ioctl: VIDIOC_G_STD(std=0x7fffda577c84 [PAL_G,PAL_K,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,SECAM_B,SECAM_D,SECAM_G,SECAM_K,SECAM_L,(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)]): Argomento non valido
ioctl: VIDIOC_S_STD(std=0x0 []): Argomento non valido
no way to get: 384x288 32 bit TrueColor (LE: bgr-)
( l'errore del dga è perchè ho una nvidia ). Comunque ho montato i moduli con debug=3
Ecco l'output:
nicus kernel: [ 89.348254] Linux video capture interface: v2.00
nicus kernel: [ 89.350285] sn9c102: V4L2 driver for SN9C1xx PC Camera Controllers v1:1.44
nicus kernel: [ 89.351699] usb 3-2: SN9C103 PC Camera Controller detected (vid:pid 0x0C45:0x60AF)
nicus kernel: [ 89.360754] usb 3-2: [sn9c102_i2c_try_raw_read:404] I2C read failed for HV7131D image sensor
nicus kernel: [ 89.366751] usb 3-2: [sn9c102_i2c_try_raw_read:404] I2C read failed for HV7131D image sensor
nicus kernel: [ 89.378738] usb 3-2: [sn9c102_i2c_try_raw_read:404] I2C read failed for HV7131R image sensor
nicus kernel: [ 89.387730] usb 3-2: [sn9c102_i2c_try_raw_read:404] I2C read failed for MI-0343 image sensor
nicus kernel: [ 89.396718] usb 3-2: [sn9c102_i2c_try_raw_read:404] I2C read failed for MI-0360 image sensor
nicus kernel: [ 89.427694] usb 3-2: PAS202BCB image sensor detected
nicus kernel: [ 89.427702] usb 3-2: [sn9c102_usb_probe:3258] Support for PAS202BCB maintained by Luca Risolia <luca.risolia@studio.unibo.it>
nicus kernel: [ 89.557255] usb 3-2: [sn9c102_init:1668] Uncompressed video format is active
nicus kernel: [ 89.568244] usb 3-2: [sn9c102_init:1689] Image sensor supports 'exposure' control
nicus kernel: [ 89.574239] usb 3-2: [sn9c102_init:1689] Image sensor supports 'global gain' control
nicus kernel: [ 89.580232] usb 3-2: [sn9c102_init:1689] Image sensor supports 'red balance' control
nicus kernel: [ 89.586227] usb 3-2: [sn9c102_init:1689] Image sensor supports 'blue balance' control
nicus kernel: [ 89.592222] usb 3-2: [sn9c102_init:1689] Image sensor supports 'green balance' control
nicus kernel: [ 89.598216] usb 3-2: [sn9c102_init:1689] Image sensor supports 'DAC magnitude' control
nicus kernel: [ 89.598226] usb 3-2: Initialization succeeded
nicus kernel: [ 89.598866] usb 3-2: V4L2 device registered as /dev/video0
nicus kernel: [ 89.598870] usb 3-2: Optional device control through 'sysfs' interface disabled
nicus kernel: [ 89.598874] usb 3-2: [sn9c102_usb_probe:3317] Compile the kernel with the 'CONFIG_VIDEO_ADV_DEBUG' configuration option to enable it.
nicus kernel: [ 89.598900] usbcore: registered new interface driver sn9c102
Poi se faccio partire xawtv:
Sep 10 19:30:24 nicus kernel: [ 1052.637888] usb 3-2: [sn9c102_open:1789] Video device /dev/video0 is open
Sep 10 19:30:24 nicus kernel: [ 1052.637897] sn9c102: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80585600)
Sep 10 19:30:24 nicus kernel: [ 1052.641238] usb 3-2: [sn9c102_release:1819] Video device /dev/video0 closed
Sep 10 19:30:24 nicus kernel: [ 1052.643736] usb 3-2: [sn9c102_open:1789] Video device /dev/video0 is open
Sep 10 19:30:24 nicus kernel: [ 1052.643840] sn9c102: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
Sep 10 19:30:24 nicus kernel: [ 1052.643927] sn9c102: v4l2 ioctl VIDIOC_ENUMINPUT, dir=rw (0xc050561a)
Sep 10 19:30:24 nicus kernel: [ 1052.644011] sn9c102: v4l2 ioctl VIDIOC_ENUMINPUT, dir=rw (0xc050561a)
Sep 10 19:30:24 nicus kernel: [ 1052.644095] sn9c102: v4l2 ioctl VIDIOC_ENUMSTD, dir=rw (0xc0485619)
Sep 10 19:30:24 nicus kernel: [ 1052.644176] sn9c102: v4l2 ioctl VIDIOC_ENUM_FMT, dir=rw (0xc0405602)
Sep 10 19:30:24 nicus kernel: [ 1052.644258] sn9c102: v4l2 ioctl VIDIOC_ENUM_FMT, dir=rw (0xc0405602)
Sep 10 19:30:24 nicus kernel: [ 1052.644340] sn9c102: v4l2 ioctl VIDIOC_ENUM_FMT, dir=rw (0xc0405602)
Sep 10 19:30:24 nicus kernel: [ 1052.644422] sn9c102: v4l2 ioctl VIDIOC_G_PARM, dir=rw (0xc0cc5615)
Sep 10 19:30:24 nicus kernel: [ 1052.644503] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 19:30:24 nicus kernel: [ 1052.644588] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 19:30:24 nicus kernel: [ 1052.644671] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
... ( si ripete ) ...
Sep 10 19:30:24 nicus kernel: [ 1052.881428] sn9c102: v4l2 ioctl VIDIOC_G_STD, dir=r- (0x80085617)
Sep 10 19:30:24 nicus kernel: [ 1052.881765] sn9c102: v4l2 ioctl VIDIOC_G_INPUT, dir=r- (0x80045626)
Sep 10 19:30:24 nicus kernel: [ 1052.881781] sn9c102: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
Sep 10 19:30:24 nicus kernel: [ 1052.888674] sn9c102: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
Sep 10 19:30:24 nicus kernel: [ 1052.894685] sn9c102: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
Sep 10 19:30:24 nicus kernel: [ 1052.906647] sn9c102: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
Sep 10 19:30:24 nicus kernel: [ 1052.912706] sn9c102: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
Sep 10 19:30:24 nicus kernel: [ 1052.918630] sn9c102: v4l2 ioctl VIDIOC_G_CTRL, dir=rw (0xc008561b)
Sep 10 19:30:24 nicus kernel: [ 1053.003686] sn9c102: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0d05605)
Sep 10 19:30:24 nicus kernel: [ 1053.012592] sn9c102: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0d05605)
Sep 10 19:30:24 nicus kernel: [ 1053.024515] sn9c102: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0d05605)
Sep 10 19:30:24 nicus kernel: [ 1053.033571] sn9c102: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0d05605)
Non capisco proprio dove sta il problema...
ilsensine
10-09-2007, 18:43
v4l-conf had some trouble, trying to continue anyway
Innocuo
ioctl: VIDIOC_G_STD(std=0x7fffda577c84 [PAL_G,PAL_K,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,SECAM_B,SECAM_D,SECAM_G,SECAM_K,SECAM_L,(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)]): Argomento non valido
ioctl: VIDIOC_S_STD(std=0x0 []): Argomento non valido
Non mi sembra che quelle ioctl siano obbligatorie, può essere tranquillamente usata la VIDIOC_S_FMT (che è presente nei log del kernel). Non credo che sia questa l'origine del malfunzionamento.
no way to get: 384x288 32 bit TrueColor (LE: bgr-)
...e questa invece è fatale. xawtv non ha alcun diritto nel pretendere un formato video specifico; anzi sono pochi i driver che implementano il formato RGB o BGR (per ovvie ragioni prestazionali).
( l'errore del dga è perchè ho una nvidia ).
Allora aggiungi anche -nodga ai parametri di xawtv, anche se dubito che cambi qualcosa...
Ed infatti con -nodga non va lo stesso...
Comunque con fswebcam, programma per prendere immagini dalla webcam, funziona e mi da questo output:
Sep 10 20:12:27 nicus kernel: [ 1760.228378] usb 3-2: [sn9c102_open:1789] Video device /dev/video0 is open
Sep 10 20:12:27 nicus kernel: [ 1760.228435] sn9c102: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
Sep 10 20:12:27 nicus kernel: [ 1760.228454] sn9c102: v4l2 ioctl VIDIOC_ENUMINPUT, dir=rw (0xc050561a)
Sep 10 20:12:27 nicus kernel: [ 1760.228460] sn9c102: v4l2 ioctl VIDIOC_S_INPUT, dir=rw (0xc0045627)
Sep 10 20:12:27 nicus kernel: [ 1760.228466] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 20:12:27 nicus kernel: [ 1760.228473] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 20:12:27 nicus kernel: [ 1760.228478] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 20:12:27 nicus kernel: [ 1760.228482] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 20:12:27 nicus kernel: [ 1760.228487] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 20:12:27 nicus kernel: [ 1760.228492] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
Sep 10 20:12:27 nicus kernel: [ 1760.228497] sn9c102: v4l2 ioctl VIDIOC_QUERYCTRL, dir=rw (0xc0445624)
( si ripete )...
Sep 10 20:12:27 nicus kernel: [ 1760.238884] sn9c102: v4l2 ioctl VIDIOC_QBUF, dir=rw (0xc058560f)
Sep 10 20:12:27 nicus kernel: [ 1760.238889] sn9c102: v4l2 ioctl VIDIOC_QBUF, dir=rw (0xc058560f)
Sep 10 20:12:27 nicus kernel: [ 1760.238894] sn9c102: v4l2 ioctl VIDIOC_QBUF, dir=rw (0xc058560f)
Sep 10 20:12:27 nicus kernel: [ 1760.238899] sn9c102: v4l2 ioctl VIDIOC_QBUF, dir=rw (0xc058560f)
Sep 10 20:12:27 nicus kernel: [ 1760.238903] sn9c102: v4l2 ioctl VIDIOC_STREAMON, dir=-w (0x40045612)
Sep 10 20:12:27 nicus kernel: [ 1760.238910] usb 3-2: [sn9c102_vidioc_streamon:2898] Stream on
Sep 10 20:12:27 nicus kernel: [ 1760.244866] usb 3-2: [sn9c102_urb_complete:801] EOF without SOF
Sep 10 20:12:27 nicus kernel: [ 1760.245172] usb 3-2: [sn9c102_urb_complete:818] SOF detected: new video frame
Sep 10 20:12:28 nicus kernel: [ 1760.605907] usb 3-2: [sn9c102_urb_complete:794] Not expected EOF after 14 bytes $
Sep 10 20:12:28 nicus kernel: [ 1761.297437] usb 3-2: [sn9c102_urb_complete:801] EOF without SOF
Sep 10 20:12:28 nicus kernel: [ 1761.304402] usb 3-2: [sn9c102_urb_complete:818] SOF detected: new video frame
Sep 10 20:12:29 nicus kernel: [ 1761.738359] usb 3-2: [sn9c102_urb_complete:784] Video frame captured: 110592 byt$
Sep 10 20:12:29 nicus kernel: [ 1761.738458] sn9c102: v4l2 ioctl VIDIOC_DQBUF, dir=rw (0xc0585611)
Sep 10 20:12:29 nicus kernel: [ 1761.743430] usb 3-2: [sn9c102_release:1819] Video device /dev/video0 closed
ilsensine
10-09-2007, 19:35
Credo che il problema sia tutto dentro xawtv, non nel driver.
Ma uff... Il problema non in se non è xawtv, che alla fine non userei molto, ma è zoneminder, che purtroppo non è compatibile con v4l2 :(
Poi aMsn non ha piena compatibilità con le webcam v4l2.
La soluzione sarebbe usare i driver di Luca (http://www.linux-projects.org/modules/news/) perchè li ha scritti sia in v4l che in v4l2 ( così da poterla usare con qualsiasi programma ) ma:
1) vorrebbe 10 E per scaricere i driver
2) è compatibile solo col kernel 2.6.20 di feisty, ed io uso invece il 2.6.23
ilsensine
10-09-2007, 20:16
Lascia perdere i driver closed source. Se proprio vuoi affrontare seriamente il problema, dovresti rivolgerti agli sviluppatori (ad es. su una v4l mailing list) e sentire cosa suggeriscono.
Perché dici che aMsn non ha "piena compatibilità" con v4l2? Non serve molto per avere un supporto soddisfacente...
Lascia perdere i driver closed source. Se proprio vuoi affrontare seriamente il problema, dovresti rivolgerti agli sviluppatori (ad es. su una v4l mailing list) e sentire cosa suggeriscono.
Perché dici che aMsn non ha "piena compatibilità" con v4l2? Non serve molto per avere un supporto soddisfacente...
Odio i driver closed, e pagarli mi pare esagerato :rolleyes:
Credo che lo farò, sperando che mi aiutano in questo...
L'hanno detto proprio loro che non ha piena compatibilità con v4l2, che l'immagine è rovinata ( vero ) e che non si può per tutti contollare la saturazione, luminosità etc ( vero )
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.