Ho questa enumerazione e lo streaming di dati sintetici non compressi su FaceTime tramite il mio Raspberry Pi Zero W. L'esempio ConfigFS nella documentazione del gadget del kernel funziona per la maggior parte. Ha alcuni errori di battitura quando si tratta di una corretta navigazione del percorso ../ ..
, il campo streaming_maxpacket
che non esiste più in ConfigFS e sarà necessario impostare bDeviceClass = 239, bDeviceSubClass = 0x02, bDeviceProtocol = 0x01. Tuttavia, per i principianti in realtà è più semplice eseguire semplicemente il modprobe g_webcam
legacy. Presumo che tu abbia il dtoverlay = dwc2 richiesto e abbia testato altri moduli gadget come g_serial
. Sembra che tu stia già utilizzando g_ether
o l'equivalente ConfigFS per la tua soluzione di rete alternativa.
Quando abiliti il modulo g_webcam, non verrà enumerato su un tipico Mac / PC Windows / Linux fino a quando il programma uvc-gadget dello spazio utente non è in esecuzione. L'impostazione di questo ha le sue insidie poiché le patch richieste non sono mai state completamente riviste da Laurent Pinchart e introducono bug propri. Puoi trovare il mio repository con patch e correzioni qui. L'ho eseguito con ./uvc-gadget -d -u / dev / video0
sia su Raspbian 8 Jessie che su Raspbian 9 Stretch.
Sto sostanzialmente descrivendo gli stessi passaggi come hai visto joe60 ha fatto sui forum Raspberry Pi, ma poiché è una procedura molto soggetta a errori avere un altro punto di riferimento non dovrebbe far male.
Nota che anche una volta che il case base funziona, c'è una grande croce -prodotto di casi per il formato ( -f
), tipo di memoria ( -o
), bulk vs isocrono ( -b
) e dati immagine source ( -d
vs -i
vs -v
), molti dei quali potrebbero avere un supporto limitato nell'applicazione uvc-gadget.