linux - Linux 上/dev 目录上的 USB 设备检测

标签 linux linux-kernel usb-drive udev

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

相关文章:

python - 如何在终端中重写输出

linux -/dev/random 权限被拒绝

virtualbox - 如何使用 USB 调制解调器将 VirtualBox 连接到互联网

linux-kernel - 为什么 COW mmap 在大于 4GB 的(稀疏)文件上使用 ENOMEM 失败?

windows - Windows 下优盘和优盘的区别

android - 如何从android中的应用程序将数据写入USB内存棒(Pendrive)

Linux - 我已经 chmoded 我的所有服务器

python - 使用未安装的模块通过 ssh 运行远程 python 代码

node.js - 无法执行 Node 命令的二进制文件

c - Xenomai rtdm_clock_read 测量