如何在 Linux 中查找 USB 设备的设备节点文件?

如何在 Linux 中查找 USB 设备的设备节点文件?

我买了一个 X10 家庭自动化 USB 接口:CM15。

这是 lsusb 提供的信息:

skerit@KIP-DU-SKER:~$ lsusb
Bus 008 Device 002: ID 0bc7:0001 X10 Wireless Technology, Inc. ActiveHome (ACPI-compliant)

但这并没有告诉我设备文件在哪里!我怎样才能找到它,或者自己创建一个?

答案1

设备节点由内核自动创建(在较旧的发行版中由 udev 创建)。Udev 还会在/dev/disk/by-*/和 类似目录下创建描述性链接。

如果它是存储设备,lsblk -f或者sudo blkid应该列出它。

串行设备通常为或。ttyUSBnumttyACMnum

对于其他一切,请检查系统登录dmesg

答案2

打字

udevadm monitor


udevadm monitor --property (事件的更详细的设备属性)
放入终端窗口并在插入 USB 设备时可见,将打印设备路径的调试消息并包含该设备的驱动程序类和驱动程序。

wlan 设备的输出示例:

UDEV [4673693.744066] 添加 /devices/platform/soc/.../net/wlan0 (net)
ACTION=
DEVPATH=
SUBSYSTEM=
DEVTYPE=
INTERFACE=
IFINDEX=
SEQNUM=
USEC_INITIALIZED=
ID_MM_CANDIDATE=
ID_NET_NAMING_SCHEME=
ID_NET_NAME_MAC=
ID_VENDOR=
ID_VENDOR_ENC=
ID_VENDOR_ID=
ID_MODEL=
ID_MODEL_ENC=
ID_MODEL_ID=
ID_REVISION= ID_SERIAL=
ID_SERIAL_SHORT=
ID_TYPE=
ID_BUS=
ID_USB_INTERFACES=
ID_USB_INTERFACE_NUM=
ID_USB_DRIVER=
ID_VENDOR_FROM_DATABASE=
ID_PATH=
ID_PATH_TAG=
ID_NET_DRIVER=
ID_NET_LINK_FILE=
ID_NET_NAME=
SYSTEMD_ALIAS=
ID_RENAMING=
INTERFACE_OLD=
TAGS=
CURRENT_TAGS=

拥有 <设备路径>

/sys/设备/平台/soc…/net/wlan0

将有助于查找属性

udevadm info --attribute-walk --path=<device path>

用于编写 udev 规则,可以为该设备创建 /dev 目录节点。

udev 规则示例(例如 /etc/udev/rules.d/<编号>-<设备>.rules

内核=="wlan*", 驱动程序=="cm15a", 操作=="添加", 子系统=="net", 子系统=="usb", ATTRS{idVendor}=="0bc7", ATTRS{idProduct}=="0001", 名称="wlan%n", SYMLINK+="%k%n"

相关内容