为了实验的目的,我买了一些无线和蓝牙设备,我打算买更多。
然而,当两个或多个相同类型的插件插入到集线器时,lsusb列出了设备的多个实例。
例如:作为USB id 0bda:f179的Realtek适配器。如果其中有3个,这个id将出现3次。
Linux有什么方法来唯一地识别它们,不只是当它们插入同一台机器时,而且在其他机器中?
例如,网络适配器有自己的MAC地址,USB磁盘驱动程序也有一些I与它们相连,但我不知道这些无线适配器和蓝牙设备。
我希望它是他们的MAC地址,但是在无线适配器中,当它们连接到我的接入点时,甚至在ifconfig列表中,它总是不同的。我怀疑Linux每次都会给他们新的MACs,除非是设备本身。
USB标准是否指定了用于唯一标识每个设备的“走开”,而不管它是什么类型?
发布于 2023-04-28 15:48:41
在Linux中,您可以使用udev系统根据各种标准为USB设备分配唯一标识符,例如设备的供应商和产品In、序列号或系统USB总线上的物理位置。这允许您唯一地识别设备,即使它们具有相同的USB ID。
要查找无线网络适配器的MAC地址,可以使用ip或ifconfig命令。但是,正如您已经注意到的,MAC地址可能会根据设备连接到的网络而改变。这是因为一些无线适配器出于隐私原因使用随机MAC地址。
蓝牙设备也有唯一的标识符,称为蓝牙设备地址(BD_ADDRs),类似于MAC地址。您可以使用hcitool或蓝牙命令查看蓝牙设备的BD_ADDR。
关于USB标准,它确实为USB设备指定了唯一的序列号,但并非所有设备都有一个序列号。如果设备确实有序列号,则可以使用它唯一地标识设备。但是,如果设备没有序列号,则仍然可以使用其他条件,如供应商和产品ID,将其与具有相同USB ID的其他设备区分开来。
https://unix.stackexchange.com/questions/744356
复制相似问题