在 Linux 中使用 lsusb
命令,我了解了总线和设备编号,以及新连接的 USB 设备的名称。
但是我怎么知道在 Linux 中仅使用命令行在哪个设备目录 (/dev/*) 上连接了 USB 设备?
最佳答案
不是规定每个设备都必须直接出现在/dev/下,但有些设备类会嵌套在/dev/内的子目录下
USB设备驱动有点不同, 如果您连接了有效的 USB 设备,USB HCI 将读取 VID:PID 并告知 USB 核心已连接具有 VID:PID 组合的设备。
如果 usbcore 检测到任何已注册的 VID:PID 组合的驱动程序,它会将其与设备耦合,并相应地创 build 备文件
设备将显示在/dev/bus/usb/.. 中,即使相应的驱动程序不存在,也表明已检测到设备。
您需要有设备驱动程序才能使设备运行/操作。
您可以通过以下方式验证设备驱动程序是否耦合到设备
cat /sys/kernel/debug/usb/devices
每个检测到的 USB 设备都会在此处有一个条目,并且还会显示“Driver=”字段,以显示哪个驱动程序与您的设备关联。
现在,IFF 有一个驱动程序,它在适当的/dev 树中创建一个条目,您将在那里找到该设备。
并非每个设备都会直接显示在第一级的/dev/下。 比如,你的鼠标/键盘不会直接出现在/dev 下,而是出现在/dev/input/中
同样,如果连接的 USB 设备是字符/ block 设备,它可能会出现在那里,但也有异常(exception)。
如果你的设备是ethernet/wifi设备,接口(interface)设备不会出现在/dev/下,与你现有的eth0、wlan0交叉检查,它们不会直接出现在/dev/下,但会出现在/proc/网络/设备
sda/b/c 直接出现在/dev 下,因为它们是 block 设备并且由 udev 管理,因此。
关于linux - Linux 上/dev 目录上的 USB 设备检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24574650/