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

/ 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
                 ???

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

这是为了操纵usb-devices和lsusb的输出.在我的案例中,获取供应商和ProdID并不是唯一的.

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

最佳答案
如果我正确读取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);

后来在bus-> devnum属性中,只有当devnum小于128时才真正设置.

转载注明原文:1001连接后/ dev / bus / usb会发生什么 - 代码日志