我正在研究通过 udev 的动态设备名称映射。
目标:
在多用户系统上,每个用户都可以分配和释放 USB 串行转换器或 PCIe 卡 (FPGA) 等设备。如果用户分配设备,/dev/<user>/<device>
则应使用分配用户的动态名称和权限创建节点。如果用户释放设备,则需要删除/重命名 devfs 节点,并且需要撤销权限。
现在的情况:
我正在试验/dev/ttyUSB1
- USB 串行转换器。我编写了一个 Python 脚本,在创建 dev 节点时从 udev 调用该脚本。它需要 USB 设备的 VendorID、ProductID 和 SerialNo,并返回 devfs 节点名称:例如paebbels/ttyUSB
。这适用于符号链接,因此原始 devfs 节点ttyUSB1
仍然存在。
如何使用我的脚本更改原始 devfs 名称?
我尝试在 udev 规则中使用 NAME 命令,但它不起作用。文档规定:NAME只能使用一次。 udev 中是否有默认规则在我的规则之前使用 NAME?
/etc/udev/...
不包含这样的规则。
在后面的阶段,我的脚本还将返回 devfs 节点的用户名、组和权限。
次要问题:
/dev/<user>/<device>
我应该按照或 中的计划创建设备文件吗~/fpga1/<device>
?
答案1
1.问题:
我不确定,但看看/lib/udev/rules.d/60-persistent-serial.rules
2.问题:
如果 udev 本身分配设备名称,我会将它们全部放在/dev
.如果不在/run/$UID/devices
.