1001 次连接后 /dev/bus/usb 会发生什么

Pat*_*can 3 usb usb-drive usb-device lsusb alpine-linux

/dev/bus/usb/*/*列出在 Alpine Linux 上连接的所有 USB 设备。例如,电话可能是/dev/bus/usb/001/009。当该电话重新连接时,它将是/dev/bus/usb/001/010,即它会增加。

我的问题是 1001 个连接后会发生什么?

/dev/bus/usb/001/009
                 010
                 ...
                 100
                 ...
                 500
                 ...
                 999
                 ???
Run Code Online (Sandbox Code Playgroud)

会吗???去1000?它会在 /dev/bus/usb/ 下创建一个新文件夹003吗?

这是用于操作usb-deviceslsusb的输出。在我的情况下,获取供应商和 ProdID 并不是唯一的。

我宁愿不插入/拔出 USB 电缆 1000 次!

Pat*_*zek 5

如果我正确阅读https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/drivers/usb/core/hub.c#n2030(函数代码调用choose_devnum),它可能比那个更早,实际上是值 127,然后返回到 1:

    /* Try to allocate the next devnum beginning at
     * bus->devnum_next. */
    devnum = find_next_zero_bit(bus->devmap.devicemap, 128,
                    bus->devnum_next);
    if (devnum >= 128)
        devnum = find_next_zero_bit(bus->devmap.devicemap,
                        128, 1);
    bus->devnum_next = (devnum >= 127 ? 1 : devnum + 1);
Run Code Online (Sandbox Code Playgroud)

并且稍后该bus->devnum属性仅在devnum小于 128时才真正设置。