【问题标题】:create uvc device and test an application创建 uvc 设备并测试应用程序
【发布时间】:2017-08-21 22:26:49
【问题描述】:

我正在使用安装了 Linux 的开发板。最终它将用作 USB 网络摄像头。我构建了内核并添加了一个 UVC 驱动程序。

我正在关注these instructions 进行测试。不幸的是,当我连接主机并运行应用程序时,出现以下错误:

v4l2_core: (jpeg decoder) error while decoding frame

我想在我的主机上测试application that I'm using。这有几个问题。

在我使用的 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 上执行它时,什么也没有发生。我四处搜索,但我无法找到为什么会发生这种情况的答案。

  1. 那么如何在 linux 上创建视频设备并使用 g_webcam 将其绑定到 UVC 小工具?
  2. 假设我们找到了第 1 步。执行uvc-gadget -u /dev/video<uvc video node #> -v /dev/video<vivid video node #> 后,我将如何从小工具中读取数据?

感谢任何帮助。

【问题讨论】:

    标签: linux ubuntu video uvc


    【解决方案1】:

    当我在我的主机 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 上执行它 [modprobe g_webcam] 时,什么也没有发生

    这是意料之中的。您的 x86_64 主机可能没有 OTG UDC,因此无法在其中启用小工具。您可以检查主机上的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)。接下来,使用 guvcview 等 UVC 相机查看器:sudo apt install guvcview

    不幸的是,当我连接主机并运行应用程序时,出现以下错误:v4l2_core: (jpeg decoder) error while decoding frame

    您是否在设备而不是主机上收到该错误?我自己没有使用过vivid,但不幸的是,两端的UVC可能会出现很多问题。我建议您首先使用合成数据 (./uvc-gadget -d) 而不是生动的,以及未压缩的 YUYV 而不是 JPEG (-f 0) 来隔离问题。您可以提前进行许多调试步骤,但这至少可以将您带到主机可以看到图像流的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-22
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      相关资源
      最近更新 更多