J'ai cette énumération et le streaming de données synthétiques non compressées vers FaceTime via mon Raspberry Pi Zero W. L'exemple ConfigFS dans la documentation du gadget du noyau fonctionne pour la plupart. Il a quelques fautes de frappe quand il s'agit de la bonne navigation dans le chemin ../ ..
, le champ streaming_maxpacket
qui n'existe plus dans ConfigFS, et vous devrez définir bDeviceClass = 239, bDeviceSubClass = 0x02, bDeviceProtocol = 0x01. Cependant, pour les débutants, il est en fait plus simple d'exécuter simplement l'ancien modprobe g_webcam
. Je suppose que vous avez le dtoverlay = dwc2 requis et que vous avez testé d'autres modules de gadgets tels que g_serial
. Il semble que vous utilisiez déjà g_ether
ou l'équivalent ConfigFS pour votre solution de mise en réseau de contournement.
Lorsque vous activez le module g_webcam, il n'énumère pas sur un Mac classique / PC Windows / Linux jusqu'à ce que le programme uvc-gadget de l'espace utilisateur soit en cours d'exécution. Mettre en place cela a ses pièges car les correctifs requis n'ont jamais été entièrement revus par Laurent Pinchart et introduisent leurs propres bogues. Vous pouvez trouver mon dépôt corrigé avec des correctifs ici. Je l'ai exécuté avec ./uvc-gadget -d -u / dev / video0
sur Raspbian 8 Jessie et Raspbian 9 Stretch.
Je décris essentiellement les mêmes étapes comme vous l'avez vu joe60 sur les forums Raspberry Pi, mais comme c'est une procédure très sujette aux erreurs, avoir un autre point de référence ne devrait pas faire de mal.
Notez que même une fois que le cas de base fonctionne, il y a une grande croix -produit de cas pour le format ( -f
), le type de mémoire ( -o
), bulk vs isochronous ( -b
) et les données d'image source ( -d
vs -i
vs -v
), dont la plupart peuvent avoir une prise en charge limitée dans l'application uvc-gadget.