使用 /etc/udev/rules 在 /dev 中创建符号链接

使用 /etc/udev/rules 在 /dev 中创建符号链接

我正在学习 Linux 基金会的 Linux 认证,但对一个实验室有一些疑问。以下是该实验室:

  1. 在您的系统上创建并实施一条规则,当插入 USB 设备时,该规则将创建一个名为 myusb 的符号链接。
  2. 将 USB 设备插入系统。它可以是 U 盘、鼠标、网络摄像头等。注意:如果您在虚拟机管理程序下运行虚拟机,则必须确保客户机可以看到 USB 设备,这通常只需单击鼠标即可,同时会断开与主机的连接。
  3. 获取 /dev 目录的列表并查看您的符号链接是否已创建。
  4. 移除 USB 设备。(如果是驱动器,则应始终先将其卸载以确保安全。)
  5. 查看你的符号链接是否仍然存在于 /dev 中。

我在终端做了什么;

  1. 创建名为/etc/udev/rules.d/75-myusb.rules

    sudo vim /etc/udev/rules.d/75-myusb.rules
    
  2. 并使其仅包含一行内容:

    SUBSYSTEM=="usb", SYMLINK+="myusb"
    
  3. 重启 udev 服务并检查

    sudo /etc/init.d/udev restart    
    ls -lF /dev | grep myusb
    

但是最后一个命令没有输出,根本没有列表。

我如何检查符号链接是否已创建?

答案1

几点

  • 使用75-,规则按顺序运行。您的规则可能会被来自 的下一个规则覆盖/lib/udev/rules.d/,最好使用99-~90-

  • SUBSYSTEM=="usb", SYMLINK+="myusb" 太普通了

    它匹配所有事件操作addremove& change。除所有 USB 设备外。也许你应该让它更严格。

    检查使用lsusb

    Bus 003 Device 003: ID 0461:4d81 Primax Electronics, Ltd Dell N889 Optical Mouse
    

    并添加它们:

    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0461", ATTRS{idProduct}=="4d81", SYMLINK+="myusb"
    
  • 并非所有设备都会在 中创建节点/dev。(您能否提及您使用过哪种类型的设备)

  • 额外奖励 :),即便如此,规则仍然与树设备节点有关。插入相机时,不仅会创建一个节点,还会从树根到叶子创建多个节点(叶子在大多数情况下是所需的节点)。检查:

    udevadm info -a /dev/video0
    

    先前修改的规则可能匹配最后两个节点(不是叶子)。

相关内容