AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1073040
Accepted
Maximilian Gerhardt
Maximilian Gerhardt
Asked: 2018-09-08 02:16:55 +0800 CST2018-09-08 02:16:55 +0800 CST 2018-09-08 02:16:55 +0800 CST

连接到大型 USB 集线器时,并非所有 USB 设备都能识别

  • 772

为了开发,我买了一个带有 28 个 USB 集线器的 USB 集线器:Manhattan MondoHub II。该设备由外部电源供电,足以满足我的用例。

在 USB 集线器上,连​​接了 15 个开发板(STMicro Nucleo 板)。基本上,一旦您将开发板插入 USB 端口,ST-Link v2 芯片就会将底层微控制器的闪存作为 USB 驱动器公开,您可以在其上拖放固件文件。然后用该固件刷新电路板。我需要自动闪烁它们。因此,我将每块板连接到集线器并运行一个闪烁所有内容的脚本。

问题是并非所有 15 个连接的设备都被识别。其中只有 11 个。dmesg引发有关 USB 主机控制器没有足够资源的错误。

在内部,USB 集线器似乎由多个 USB 集线器组成。

dmesg当我插入 USB 集线器时,没有连接任何设备:

[269831.218406] usb 2-3: new high-speed USB device number 91 using xhci_hcd
[269831.369806] usb 2-3: New USB device found, idVendor=2109, idProduct=2811
[269831.369813] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[269831.369817] usb 2-3: Product: USB2.0 Hub             
[269831.369821] usb 2-3: Manufacturer: VIA Labs, Inc.         
[269831.370918] hub 2-3:1.0: USB hub found
[269831.371195] hub 2-3:1.0: 4 ports detected
[269831.678404] usb 2-3.1: new high-speed USB device number 92 using xhci_hcd
[269831.790645] usb 2-3.1: New USB device found, idVendor=1a40, idProduct=0201
[269831.790650] usb 2-3.1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[269831.790654] usb 2-3.1: Product: USB 2.0 Hub [MTT]
[269831.791150] hub 2-3.1:1.0: USB hub found
[269831.791177] hub 2-3.1:1.0: 7 ports detected
[269831.886375] usb 2-3.2: new high-speed USB device number 93 using xhci_hcd
[269831.998500] usb 2-3.2: New USB device found, idVendor=1a40, idProduct=0201
[269831.998504] usb 2-3.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[269831.998506] usb 2-3.2: Product: USB 2.0 Hub [MTT]
[269831.998942] hub 2-3.2:1.0: USB hub found
[269831.998964] hub 2-3.2:1.0: 7 ports detected
[269832.090378] usb 2-3.3: new high-speed USB device number 94 using xhci_hcd
[269832.202654] usb 2-3.3: New USB device found, idVendor=1a40, idProduct=0201
[269832.202658] usb 2-3.3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[269832.202660] usb 2-3.3: Product: USB 2.0 Hub [MTT]
[269832.203232] hub 2-3.3:1.0: USB hub found
[269832.203258] hub 2-3.3:1.0: 7 ports detected
[269832.294400] usb 2-3.4: new high-speed USB device number 95 using xhci_hcd
[269832.415440] usb 2-3.4: New USB device found, idVendor=14cd, idProduct=8601
[269832.415449] usb 2-3.4: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[269832.415454] usb 2-3.4: Product: USB 2.0 Hub            
[269832.415458] usb 2-3.4: Manufacturer: USB Device  
[269832.416721] hub 2-3.4:1.0: USB hub found
[269832.416838] hub 2-3.4:1.0: 4 ports detected

断开连接时:

[269873.242343] usb 2-3: USB disconnect, device number 91
[269873.242349] usb 2-3.1: USB disconnect, device number 92
[269873.243596] usb 2-3.2: USB disconnect, device number 93
[269873.244672] usb 2-3.3: USB disconnect, device number 94
[269873.245725] usb 2-3.4: USB disconnect, device number 95

然后我连接板接板。板 1 到 11 被识别并导致此类消息:

[269950.734094] usb 2-3.2.1: new full-speed USB device number 103 using xhci_hcd
[269950.856137] usb 2-3.2.1: New USB device found, idVendor=0483, idProduct=374b
[269950.856140] usb 2-3.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[269950.856142] usb 2-3.2.1: Product: STM32 STLink
[269950.856144] usb 2-3.2.1: Manufacturer: STMicroelectronics
[269950.856146] usb 2-3.2.1: SerialNumber: 0671FF323532543457250836
[269950.911199] usb-storage 2-3.2.1:1.1: USB Mass Storage device detected
[269950.911377] scsi host5: usb-storage 2-3.2.1:1.1
[269950.911809] cdc_acm 2-3.2.1:1.2: ttyACM2: USB ACM device
[269951.942405] scsi 5:0:0:0: Direct-Access     MBED     microcontroller  1.0  PQ: 0 ANSI: 2
[269951.942686] sd 5:0:0:0: Attached scsi generic sg4 type 0
[269951.942980] sd 5:0:0:0: [sdd] 2080 512-byte logical blocks: (1.06 MB/1.02 MiB)
[269951.943876] sd 5:0:0:0: [sdd] Write Protect is off
[269951.943887] sd 5:0:0:0: [sdd] Mode Sense: 03 00 00 00
[269951.944137] sd 5:0:0:0: [sdd] No Caching mode page found
[269951.944143] sd 5:0:0:0: [sdd] Assuming drive cache: write through
[269951.963779] sd 5:0:0:0: [sdd] Attached SCSI removable disk

连接第 12 块板时,无法识别。日志:

[270155.277574] usb 2-3.2.6: new full-speed USB device number 112 using xhci_hcd
[270155.407457] usb 2-3.2.6: New USB device found, idVendor=0483, idProduct=374b
[270155.407464] usb 2-3.2.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[270155.407468] usb 2-3.2.6: Product: STM32 STLink
[270155.407472] usb 2-3.2.6: Manufacturer: STMicroelectronics
[270155.407476] usb 2-3.2.6: SerialNumber: 066DFF323532543457074843
[270155.408451] usb 2-3.2.6: Not enough host controller resources for new device state.
[270155.408681] usb 2-3.2.6: can't set config #1, error -12

这里发生了什么?我是否受到 USB 协议、集线器或内核/驱动程序的限制?

在联想 ThinkPad E550 上运行 Ubuntu Budgie '18.04.1 LTS (Bionic Beaver)'。

如果需要,将获取更多日志。完整的日志文件:https ://pastebin.com/BarBHwnc

drivers usb peripherals budgie
  • 2 2 个回答
  • 2373 Views

2 个回答

  • Voted
  1. Best Answer
    Maximilian Gerhardt
    2018-09-21T04:51:42+08:002018-09-21T04:51:42+08:00

    这似乎是我的不同笔记本电脑/他们的 USB 芯片组的问题。我切换到台式电脑,其主板有很多 USB 连接。

    在那里,Windows 10 和 Linux (Debian 9) 都完美地识别了 100 台设备中的每台设备(4 台 MondoHub II,每台 25 位开发人员),没有弹出“主机控制器资源不足”消息。

    • 0
  2. Brett Wertz
    2019-02-28T12:57:17+08:002019-02-28T12:57:17+08:00

    我在我的 Windows 机器上遇到了同样的问题,我相信问题的根本原因归结为 USB 架构以及您在 PC 上拥有和连接的 USB 主机控制器的数量。这篇National Instruments 知识库文章是我为这个问题找到的最简洁的解释。

    USB 规范对其通信协议有固定的标准。关于枚举和与 USB 设备通信,允许的 USB 地址和端点的数量由 USB 令牌包的结构给出,如下所示:

    {图片见链接}

    地址字段用于表示物理 USB 设备。由于它是 7 位长,单个 USB 主机控制器最多可以连接 127 个(27 – 1 个主机控制器)设备。连接的 USB 集线器算作一个 USB 设备地址,并且连接到它的每个设备都将访问该主机控制器的最大允许地址。

    同样,端点字段用于通过 USB 总线路由特定类型的数据,它们类似于 TCP/IP 通信协议中的端口。它的字段长度为 4 位,允许 16 (24) 个可寻址端点。但是,由于端点是单向的(进入或离开 USB 设备),单个 USB 设备最多可以分配 32 个端点。允许的 USB 端点总数取决于 USB 主机控制器及其固件,但是,对于某些控制器,此数量可能少于 100 个允许的 USB 端点总数。

    因此,如果尝试将 USB 设备添加到主机控制器,并且会导致超出地址或端点的数量,则会抛出上述 Windows 资源错误。由于某些设备每个设备最多可以使用 32 个端点,因此在将 NI 设备与 USB 集线器连接时,您可能会超出允许的端点数量。同样,一些计算机自己的内部 USB 端口和其他内部设备(如无线网卡、音频、相机等)都绑定到单个 USB 主机控制器,这会导致相当快地超出 USB 资源。

    话虽如此,此链接解释了查看 PC 上 USB 设备和控制器数量的许多不同方法。

    • 0

相关问题

  • 修复 USB 驱动器自动通知

  • 如何为 LG X130 上网本安装 relink 无线驱动程序

  • 如何从命令行重置 USB 设备?

  • 类似于 Eyefinity 的东西?

  • 在哪里可以找到 Brother HL-2170W 64 位打印机驱动程序?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve