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/processor-SDK-AM335X:USB 错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/721341/linux-processor-sdk-am335x-usb-errors

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

我们有一个使用 AM335x 处理器并运行 DISDK 7.0中包含的3.12.10内核的电路板。  我们板上有2个 USB 端口、一个主机和一个器件。  可以将主机端口设置为在其上运行 IP、并使用 g_ether 驱动程序。  我们注意到、在我们的一些电路板上、当它们启动并将 USB 器件连接到 USB 主机端口时、我们会在/var/log/messages 文件中看到这一点:

8月22日15:51:18 Node00b01973d808守护程序.err udevd[870]:Worker [873]超时、将其杀死  
8月22日15:51:18 Node00b01973d808 daem.err udevd[870]:序列1256 "/devices/ocp.2/47400000.usb/47401400.usb/musb-hdrc.0.auto/gadget/net/usb1 "已取消  

8月22日15:51:18 Node00b01973d808 daemon.err udevd[870]:工人[873]被信号9终止(已终止)

并且从未设置 USB1端口、并且没有 IP 流量通过该端口。  这可能是什么原因、我们如何解决?  

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

    您好、Tim、

    首先、SDK 7.0是旧版本、在此论坛中不再受支持。 但是、我想详细了解您的用例、看看我们是否可以在没有大量调试的情况下解决问题、否则您必须测试最新的 SDK 版本、以查看问题是否仍然存在。

    [引用用户="Tim Potter"]我们的电路板上有2个 USB 端口、一个主机和一个设备。

    哪个端口是主机、哪个是器件? USB0与 USB1 (或 musb-hdrc.0.auto 与 musb-hdrc.1.auto)。 ddr_mode 是否设置为 DTS 中相应 USB 端口的"host"和"peripheral"?

    [引用用户="Tim Potter"]可以将主机端口设置为跨其运行 IP

    意味着 USB 网络软件狗已连接到主机端口?

    [引用用户="Tim Potter"]并使用 g_ether 驱动程序

    这意味着什么? 为什么主机端口需要小工具驱动程序? 或者连接的 USB 设备是另一个运行 g_ether 小工具驱动程序的板?

    [引用 user="Tim Potter"]并且从未设置 USB1端口、并且没有 IP 流量通过该端口。  [/报价]

    发生这种情况时、USB 器件是否已经连接到 USB1 (主机端口?) 电源端口? 如果是、如果再次断开并重新连接器件、USB 是否正常工作?

    您是否曾尝试禁用 MUSB CPPI DMA 以查看问题是否也发生?

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

    您好!

    哪个端口是主机、哪个是器件?  USB1是主机端口、USB0是器件端口。

    意味着 USB 网络软件狗已连接到主机端口? -不  我们有另一个板、其 AM335x 芯片直接连接到它。  在该连接中、它的功能与标准以太网连接相同、但使用的是 USB 上的 IP。

    这意味着什么? 为什么主机端口需要小工具驱动程序? 抱歉,这可能是我缺乏理解。  连接两个板时,它们使用 g_ether 设置它们之间的 IP 通信(或者我认为是这样)。

    发生这种情况时。 USB 设备已连接到 USB1 (主机端口?) 电源端口? 正确、两个板在启动时连接。

    如果再次断开并重新连接设备、USB 是否正常工作? -是的,如果您拔下 USB 连接线并重新连接,它们就会启动并正常工作。

    您是否曾尝试禁用 MUSB CPPI DMA 以查看问题是否也发生? 不,我没有。  不知道这是可能的解决方案。  不确定禁用 DMA 的长期后果。  这对系统性能有何影响?

    SDK 7.0是旧版本、在此论坛中不再受支持。 我是否还有其他论坛可以发布这些问题?

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

    Tim、

    [引用用户="Tim Potter"]这意味着什么? 为什么主机端口需要小工具驱动程序? 抱歉,这可能是我缺乏理解。  连接两个板时,它们使用 g_ether 设置它们之间的 IP 通信(我想是这样)。

    好的、我想我理解的是、一个装有 g_ether 驱动程序的 AM335x 板 USB 端口连接到另一个 AM335x 板的 USB 主机端口。

    [引用用户="Tim Potter"]

    如果再次断开并重新连接设备、USB 是否正常工作? -是的,如果您拔下 USB 连接线并重新连接,它们就会启动并正常工作。

    您是否曾尝试禁用 MUSB CPPI DMA 以查看问题是否也发生? 不,我没有。  不知道这是可能的解决方案。  不确定禁用 DMA 的长期后果。  这对系统性能有何影响?

    [/报价]

    这听起来像是与时序相关的、即 USB 主机和器件启用其 USB 端口时。 在这种情况下、我认为 CPPI DMA 不相关。

    除了您在第一个帖子中提供的 syslog 消息之外、syslog 是否还有任何其他与 USB 枚举相关的内核消息? 或者、您是否有 USB 协议分析器来捕获两个板引导期间的 USB 总线流量?

    [引用用户="Tim Potter"]SDK 7.0是旧版本、在此论坛中不再受支持。 -我是否应该在其他论坛上发布这些问题?[/引述]

    很抱歉、我没有准确地说明它。 您可以通过两个渠道获得支持。

    此 e2e 论坛支持 Sitara 器件(包括 AM335x)、但仅两年以下的 Processor SDK 版本支持软件相关查询。 因此、您可以在最新的 SDK 中重现该问题、

    2.或者、如果您出于任何原因无法测试最新的 SDK、请将问题上报给当地的 TI 联系人。

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

    对我来说、这听起来也是一个计时问题。 看到此主题:

    e2e.ti.com/.../448159

    我们将在 udev 启动中测试建议的超时值更改,看看它是否有用。

    日志文件中的其他消息:

    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.055378] USB USB2:找到新的 USB 器件、idVendor=1d6b、idProduct=0002
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[7.062602] USB USB2:新的 USB 器件字符串:MFR=3、Product=2、SerialNumber=1
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[7.070199] USB USB2:产品:MUSB HDRC 主机驱动程序
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[7.075402] USB USB2:制造商:Linux 3.12.10-Edwards。00.24-ti2013.12.01 musb-hcd
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[7.083903] USB USB2:Serial Number:musb-hdrc.1.auto
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.141141]集线器2-0:1.0:找到 USB 集线器
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.172719]集线器2-0:1.0:检测到1个端口
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.231578]器件进入混杂模式
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.588195] USB 2-1:使用 musb-hdrc 的新型高速 USB 器件编号2
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.738683] USB 2-1:找到新的 USB 器件、idVendor=0525、idProduct=a4a2
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.749424] USB 2-1:新 USB 器件字符串:MFR=1、Product=2、SerialNumber=0
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.757225] USB 2-1:产品:RNDIS/以太网小工具
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.762352] USB 2-1:制造商:Linux 3.12.10-Edwards .00.00.24-ti2013.12.01、带 musb-hdrc
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tim、

    [引用用户="TimPotter"]e2e.ti.com/.../448159

    我们将测试 udev 启动中对超时值的建议更改,并查看它是否有用。

    感谢您提及此主题。 我不知道。

    [引用用户="Tim Potter"] 6月7日16:12:24 Node00b01973d7c0 user.info 内核:[7.588195] USB 2-1:使用 musb-hdrc 的新型高速 USB 器件编号2
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.738683] USB 2-1:找到新的 USB 器件、idVendor=0525、idProduct=a4a2
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[ 7.749424] USB 2-1:新 USB 器件字符串:MFR=1、Product=2、SerialNumber=0
    6月7日16:12:24 Node00b01973d7c0 user.info 内核:[7.757225] USB 2-1:产品:RNDIS/以太网小工具[/QUES]

    等待一分钟、此日志显示已枚举 g_ether USB 设备(我认为枚举因计时而失败...)。

    当问题在启动后发生时、主机上的'lsusb'命令是否显示器件'0525:a4a2'? 如果是、硬件和内核没有问题、听起来就像 udev 计时、您上面提到的 e2e 线程可能就是解决方案。

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

    我没有听到您的反馈,我认为您能够解决您的问题。 如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    否未解决问题。  将--timeout=3设置为--timeout=4未解决该问题。  我们仍然遇到了 udev 工作人员超时的情况。  将其设置为--timeout=0会引入许多其他问题,因此我认为我们不想这样做。  我还没有机会尝试任何大于4的值。

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

    发生问题(udev 错误且 IP 不通信)时,lsusb 命令是否会列出 USB 设备'0525:a4a2'? 我想了解问题是否在内核中引起。