This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:USB-UVC 器件问题

Guru**** 2540720 points
Other Parts Discussed in Thread: AM5728

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/699313/linux-am5728-usb-uvc-device-issue

器件型号:AM5728

工具/软件:Linux

您好!

我希望 am5728板将 EVM 摄像头(注册为 video1)捕获到的视频作为 USB-UVC 器件传输到 PC。

我已尝试以下命令来调试 Gadget 端、并发现流失败。

我使用的 PLSDK 是 ti-processor-sdk-linux-am57xx-evm-04.01.00.06

root@am57xx-EVM:~# modprobe g_webcam streaming_maxpacket=3062
[71.906926] g_webcam 小工具:UVC_FUNCK_BIND
[71.911648] g_webcam 小工具:网络摄像头视频小工具
[71.916289] g_webcam 小工具:g_webcam ready
root@am57xx-EVM:~ uvcgadget -d /dev/video2
-sh:uvcgadget:找不到命令
root@am57xx-EVM:~ uVC-gadget -d /dev/video2
打开成功、文件描述符= 3
器件是总线小工具上的 dwc3-gadget

无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区队列:无效参数[104.485856] g_webcam 小工具:高速配置#1:视频
(22)。
无法取消缓冲区的队列:参数无效(22)。
无法[104.494787] g_webcam 小工具:uvc_function_set_alt (0、0)
若要对缓冲区进行去队列处理:参数无效(22)。
无法对 buf[104.505604] g_webcam 小工具进行排程:重置 UVC 控件
FER:无效参数(22)。
无法取消缓冲区队列:无效 A[104.515656] g_webcam 小工具:uvc_function_set_alt (1、0)
报告(22)。
[104.526599] g_webcam 小工具:uvc_function_set_alt (1、0)

无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区队列:无效[104.569049] g_webcam 小工具:uvc_function_set_alt (1、0)
参数(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
bRequestType A1 BREQUEST 86 wValue 0400 WINDEX 0100 wLength 0001
控制请求(请求86 cs 04)
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
无法取消缓冲区的队列:参数无效(22)。
bRequestType A1 BREQUEST 81 wValue 0200 WINDEX 0000 wLength 0001
控制请求(请求81 cs 02)

对此有任何见解是值得欢迎的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    博伊奇

    仅当主机视频流应用程序尚未启动时、您才会看到此消息、它是否正确?
    在 UVC-Gadget.c 示例中、这是一个无害的问题。 我删除了 UVC-Gadget.c 副本中的 printf()代码,以消除这些消息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bin、
    主机流应用程序没有显示任何内容、它应该在"UVC-gadget -d /dev/video2 "之后显示一个色条、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    视频流应该可以正常工作。 您使用什么主机应用程序?
    SDK-4.1.0.6很旧、现在我不记得头顶是否支持高带宽。 稍后我会在有时间时检查它。
    如果在加载 g_webcam 驱动程序时未通过"streaming_maxpacket=3062"、视频流是否正常?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    加载 g_webcam 驱动程序时、我尝试不通过"streaming_maxpacket=3062"、但仍然失败。
    我使用的应用程序是 Windows 上的 Amcap、我还尝试了 Ubuntu 上的 luvcview。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我从未在 Windows 主机上测试过它、但我在 Ubuntu 上使用以下命令。

    luvcview -d /dev/video1 -f yUV

    我现在没有准备好设置、也许今天晚些时候我将使用 SDK v4.1.0.6版本测试此案例、并告知您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    顺便说一下、请确保您的 UVC-Gadget.c 应用了以下补丁。

    e2e.ti.com/.../8004.0001_2D00_uvc_2D00_gadget_2D00_Fix_2D00_Set_2D00_Interface_2D00_alternate_2D00_setting_2D00_respo.patch.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经尝试 了 luvcview -d /dev/video1 -f yUV,它显示了类似的情况。当我尝试流式传输 jpg 文件或 yUV 文件时,情况也是如此

    zyy@~ Ubuntu:μ C/ti-processor-sdk-linux-am57xx-evm-04.01.00.06/example-applications$ luvcview -d /dev/video0 -f yUV
    luvcview 0.2.6

    SDL 信息:
    视频驱动程序:X11
    窗口管理器可用
    器件信息:
    器件路径:/dev/video0
    流设置:
    帧格式:YUYV
    帧大小:640x360 (设备不支持请求的大小640x480)
    帧速率:15fps (器件不支持请求的帧速率30fps)

    我不配置640x480的大小

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    粉色/绿色条纹是否在滚动? 这实际上是从 UVC 小工具流式传输的图像。 我没有尝试流式传输 jpg 文件、因此我没有对此进行评论。

    [引用 user="boycchi"]

    帧大小:640x360 (设备不支持请求的大小640x480)
    帧速率:15fps (器件不支持请求的帧速率30fps)

    我不配置640x480的大小

    [/报价]

    我想640x480是 luvcview 的默认值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、它正在滚动、但我想将其他视频设备捕获的视频流式传输到 PC。那么、我从哪里开始?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UVC-Gadget.c 只是一个简单的示例、展示了如何生成要流式传输的视频图像、在本例中为粉红色/绿色条带。

    您必须根据自己的要求实施自己的应用程序、基本上从另一个视频设备中删除图像、并将其排队到 g_webcam 视频设备中。