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

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

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

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

/dev/bus/usb/001/009
                 010
                 ...
                 100
                 ...
                 500
                 ...
                 999
                 ???

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

这是为了操纵输出USB 设备LSSB。获取 Vendor 和 ProdID 在我的案例中并不罕见。

我不想插拔 USB 电缆 1000 次!

答案1

如果我读得正确的话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);

稍后,仅当小于 128 时,该bus->devnum属性才会真正设置。devnum

相关内容