bakbad 2021-05-13 17:03 采纳率: 0%
浏览 22

USB3.0 控制器报错

各位好,我这边有一台笔记本上采用了VL805这个控制器,然后VL805这个芯片内部集成了一个二层hub在里面,在这个二层hub上接了蓝牙设备,摄像头和指纹模块。然后打开摄像头工作,会正常工作一会,然后摄像头画面就卡死了,其它端口也感觉是死了(因为此时外接USB设备系统没反应,系统并没有挂掉)。另外打开摄像头后内核中会不断的打印这样的信息:

xhci_hcd: overrun event on endpoint

xhci_hcd: Overrun Event for slot 3 ep 2 still with TDs queued?

尝试禁用了hub上的其它设备,单独使用摄像头还是会出现同样的问题。

 

有啥思路能提供下吗,CSDN上的大佬们。

  • 写回答

1条回答 默认 最新

  • Light Gao 优质创作者: 编程框架技术领域 2024-06-27 10:29
    关注

    你的问题涉及 USB 3.0 控制器(VL805)在使用摄像头时出现的过载错误(overrun event)。这个问题可能由以下几个方面引起:

    1. 带宽不足

      • USB 3.0 控制器的带宽可能不足以同时处理摄像头和其他设备的数据传输需求。虽然你提到禁用了 hub 上的其他设备,但仍有可能摄像头单独使用时也超过了可用带宽。
    2. 电源管理

      • USB 设备在高负荷下可能会遇到电源管理问题,尤其是在集成的 hub 上。如果电源不足,可能导致设备间歇性地失去连接。
    3. 驱动程序问题

      • 驱动程序的兼容性和稳定性问题可能导致此类错误。确保使用最新的驱动程序,并查看是否有针对类似问题的补丁。
    4. 硬件问题

      • 硬件本身可能有问题,导致在高负荷下出现过载错误。可以尝试在另一台设备上测试相同的硬件配置,以确认是否是硬件故障。

    以下是一些可能的解决方案:

    1. 更新驱动程序

    确保所有相关驱动程序(包括 VL805 控制器和摄像头的驱动程序)都是最新的。你可以从制造商的网站上下载最新的驱动程序。

    2. 调整 USB 设置

    在 BIOS 或操作系统中,调整 USB 设置。你可以尝试禁用 USB 节能模式或调整其他 USB 相关设置。

    3. 重新分配设备

    如果可能,尝试将摄像头和其他 USB 设备连接到不同的 USB 控制器上,避免全部设备都通过同一个 VL805 控制器传输数据。

    4. 检查硬件

    确认 USB 端口和连接线没有问题。可以尝试更换连接线或者端口。

    5. 调整内核参数

    尝试调整 Linux 内核参数来优化 USB 控制器的性能。例如,增加 xHCI 控制器的内存缓冲区大小。

    你可以在启动参数中添加如下选项:

    usbcore.autosuspend=-1
    

    6. 检查 dmesg 输出

    使用 dmesg 命令查看系统日志,获取更多关于错误的信息。这可能提供更多的线索来解决问题。

    dmesg | grep xhci_hcd
    

    示例解决方案

    假设你的系统是基于 Linux 的,可以尝试以下步骤:

    # 查看系统日志,了解更多错误信息
    dmesg | grep xhci_hcd
    
    # 禁用 USB 自动挂起功能
    echo -1 > /sys/module/usbcore/parameters/autosuspend
    
    # 如果仍然不行,可以尝试增加 xHCI 内存缓冲区
    echo 256 > /sys/module/xhci_hcd/parameters/intr_thres
    

    如果问题仍然存在,建议联系硬件制造商或查看是否有固件更新。同时,在一些技术论坛(如 CSDN)上寻求更多帮助,可能会找到有类似问题的用户提供的解决方案。

    评论

报告相同问题?