You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写udev规则为指定USB设备创建固定sysfs符号链接?

实现USB设备sysfs固定符号链接的udev配置方案

不需要编写额外驱动,通过udev规则即可实现需求,以下是具体配置步骤:

编写udev规则文件

创建(或编辑)udev规则文件 /etc/udev/rules.d/99-usb-custom-links.rules,添加以下内容:

USB Hub规则

SUBSYSTEM=="usb", ATTR{idVendor}=="2109", ATTR{idProduct}=="2817", ACTION=="add", RUN+="/bin/ln -sf $devpath /sys/test-usb-hub"
SUBSYSTEM=="usb", ATTR{idVendor}=="2109", ATTR{idProduct}=="2817", ACTION=="remove", RUN+="/bin/rm -f /sys/test-usb-hub"

无线鼠标规则

SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c52b", ACTION=="add", RUN+="/bin/ln -sf $devpath /sys/test-mouse"
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c52b", ACTION=="remove", RUN+="/bin/rm -f /sys/test-mouse"

规则说明

  • SUBSYSTEM=="usb":匹配sysfs中的USB设备对象(而非/dev下的字符设备节点)
  • ATTR{idVendor}/ATTR{idProduct}:通过厂商ID和产品ID精准定位目标设备
  • ACTION=="add"/ACTION=="remove":分别在设备接入和移除时执行对应命令
  • RUN+="/bin/ln -sf $devpath /sys/test-usb-hub":创建符号链接指向设备在sysfs中的实际路径,$devpath是udev提供的环境变量,代表设备在sysfs中的相对路径(如/devices/pci0000:00/0000:00:14.0/usb1/1-2)
  • 移除时的rm命令用于清理无效链接,避免残留

生效规则

执行以下命令重载udev规则并触发设备事件:

udevadm control --reload-rules
udevadm trigger --subsystem-match=usb

验证效果

设备接入后,可通过以下路径访问设备属性:

  • 查看Hub制造商名称:cat /sys/test-usb-hub/manufacturer
  • 查看鼠标制造商名称:cat /sys/test-mouse/manufacturer

内容的提问来源于stack exchange,提问作者raj123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:47:32