默认设备名称(例如/dev/ttyUSBx)在哪里指定?

默认设备名称(例如/dev/ttyUSBx)在哪里指定?

我正在研究通过 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.

相关内容