你正在制作兼具相机和拇指驱动器的设备吗?也许是加密狗,你可以上传视频,然后在Skype上播放?无论哪种方式,这对configfs来说都是一个很好的练习。
在高层次上,步骤是:
让大容量存储独立工作。
让UVC工作(将图像流式传输到主机)。
将两者合并为一个脚本。
过早跳到第3步会使诊断问题变得更加困难。例如,如果用户空间uvc-gadget程序存在可能阻止两个小工具枚举的问题。
作为root,您可以运行以下脚本验证以使用Raspbian 9在Raspberry Pi Zero W上进行枚举和流式传输。对于步骤1,您可以删除特定于UVC的部分,然后在步骤2中同样使用大容量存储行。
#!/bin/bash -xe
modprobe libcomposite
cd /sys/kernel/config/usb_gadget/
mkdir -p stackoverflow
cd stackoverflow
echo 0x1d6b > idVendor # Linux Foundation
echo 0x0104 > idProduct # Multifunction Composite Gadget
echo 239 > bDeviceClass # USB_CLASS_MISC
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
mkdir -p strings/0x409
mkdir -p configs/c.1/strings/0x409
echo "My Composite Gadget" > str