我正在使用一个安装了Linux的板。最终,它将被用作USB摄像头。我构建了内核并在其中添加了一个UVC驱动程序。
我正在跟踪这些指示来测试它。不幸的是,当我连接我的主机并运行应用程序时,我得到以下错误:
v4l2_core: (jpeg decoder) error while decoding frame
我想在我的主机上测试我正在使用的应用程序。这有几个问题。
在我使用的linux板上,当我执行modrobe g_webcam时,/dev,/dev/video0中出现了一个新的视频设备。当我在我的主机Linux ubuntu 4.10.0-32-generic #36~16.04.1-Ubuntu SMP Wed Aug 9 09:19:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux上执行它时,什么都不会发生。我到处搜索,但我无法找到为什么会发生这种情况的答案。
g_webcam绑定到UVC小工具上呢?uvc-gadget -u /dev/video<uvc video node #> -v /dev/video<vivid video node #>之后,我将如何从这个小工具读取数据?任何帮助都是非常感谢的。
发布于 2017-10-19 18:45:35
当我在我的主机
Linux ubuntu 4.10.0-32-generic #36~16.04.1-Ubuntu SMP Wed Aug 9 09:19:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux上执行它时,什么都不会发生。
这是意料之中的。您的x86_64主机可能没有OTG,因此无法在其上启用一个小工具。您可以在主机上检查dmesg以确认这一点,但无论如何,您不应该在主机上运行modprobe g_webcam。
那么,如何在linux上创建一个视频设备,并将其与
g_webcam绑定到UVC小工具上呢?
您的modprobe g_webcam命令创建了输出视频设备。运行uvc-gadget时,它知道如何绑定到/dev/video0,从源代码中可以看出这一点。
执行
uvc-gadget -u /dev/video<uvc video node #> -v /dev/video<vivid video node #>后,如何从小工具中读取数据?
在主机上,首先确认/dev/videoX正确枚举(运行dmesg)。接下来,使用UVC摄像机查看器,例如guvcview:sudo apt install guvcview。
不幸的是,当我连接我的主机并运行应用程序时,我得到了以下错误:
v4l2_core: (jpeg decoder) error while decoding frame
在设备上,而不是在主机上,您是否收到了该错误?我并没有使用生动的自己,但不幸的是,UVC在两端都有很多问题。我建议您首先使用合成数据(./uvc-gadget -d) (而不是生动的)以及未压缩的YUYV (而不是JPEG (-f 0) )来隔离问题。您可以提前进行许多调试步骤,但这至少可以将您带到一个起点,在这里,主机可以看到图像流。
https://stackoverflow.com/questions/45806381
复制相似问题