【问题标题】:udev usb everytime different pathudev usb每次不同的路径
【发布时间】:2015-09-21 23:42:21
【问题描述】:

我的 Linux 板有以下问题: 我的 USB 媒体设备每次都作为不同的设备安装在 /dev/ 文件夹中:

我第一次连接 USB 时,它显示为

/dev/sdb1

然后,我移除 USB 并重新插入,它得到了不同的名称:

/dev/sdc1

等等等等。

我希望它始终具有常量名称,因此我编写了以下 udev 规则:

SUBSYSTEM=="block",ENV{ID_SERIAL}==" serial id ",NAME="myusbmedia"

这条规则不起作用。我可以有以下规则的符号名称:

SUBSYSTEM=="block",ENV{ID_SERIAL}==" serial id ",SYMLINK="myusbmedia"

此规则有效,但并没有解决问题,因为 usb 仍然获取 /dev/sd[b,c,d, ...] 名称...

有没有人知道如何让 USB 出现在同名设备节点下的 /dev/ 中?

【问题讨论】:

  • 我知道的有这么多吗(因为我在 Debia/Ubunto 遇到了同样的问题)usb 设备在每次重启时并不总是以相同的方式枚举。防止这种情况的最佳方法(workarround)是使用 udev 规则创建符号链接...就像您在上面所做的一样!
  • 每次重新启动时,设备的名称都相同——sdb1。但是在usb的第二个附件 - sdc1,第三个 - sdd1等。符号链接不是解决方案,我想更改节点的名称。

标签: linux usb rule udev


【解决方案1】:

当你连接你的设备时,我假设你使用 mount 来访问它的文件。 您应该在断开驱动器之前卸载驱动器(使用 umount 命令),然后它应该与 /dev 文件夹中的同一设备保持一致。

例如:

umount /dev/sdc1

【讨论】:

  • 不,我没有明确地调用 umount,我希望它在移除 usbstick 时自动完成
【解决方案2】:

这个问题是无法解决的,至少使用 udev。设备节点由内核创建,而不是 udev。所以需要修改内核。

来自手册页 udev(7):

 The following keys can get values assigned:
       NAME
          The name to use for a network interface. The name of a device 
           node cannot be changed by udev, only additional symlinks
           can be created.

另见http://lists.kernelnewbies.org/pipermail/kernelnewbies/2015-April/013889.html

已经向内核提出了这个方向的东西,但它还没有被主流 Linux http://thread.gmane.org/gmane.linux.scsi/70947 接受

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-07
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多