首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >udev忘记自定义规则中的标签

udev忘记自定义规则中的标签
EN

Ask Ubuntu用户
提问于 2019-05-14 15:17:11
回答 2查看 415关注 0票数 1

我有一套相当简单的定制规则:

代码语言:javascript
运行
复制
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_MODEL_ID}=="0748", ENV{ID_VENDOR_ID}=="05e3", TAG+="my-card-reader"
TAGS=="my-card-reader", ENV{DEVTYPE}=="disk", ENV{ID_INSTANCE}=="0:1", SYMLINK+="sdcard"
TAGS=="my-card-reader", ENV{ID_INSTANCE}=="0:1", ENV{DEVTYPE}=="partition", SYMLINK+="sdcard%n"

我正在尝试识别我的USB读卡器,然后在/dev中给出众所周知的/dev卡名。这套规则曾在16.04起作用,而在18.04则不起作用。

在检查udevadm monitor -p时,我可以看到USB是被识别的:

代码语言:javascript
运行
复制
UDEV  [1832291.742219] add      /devices/pci0000:00/0000:00:14.0/usb4/4-2 (usb)
ACTION=add
[…]
SUBSYSTEM=usb
TAGS=:my-card-reader:
[…]

但是,当我稍后使用udevadm info /sys/devices/pci0000:00/0000:00:14.0/usb4/4-2检查sysfs路径时,我的标记就不再显示了--实际上,根本就没有可用的E: TAGS条目。

对于其他设备,例如我的microSD卡上的分区,Ubuntu的默认systemd标记仍然可用:

代码语言:javascript
运行
复制
P: /devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host3/target3:0:0/3:0:0:2/block/sdf
N: sdf
[…]
E: SUBSYSTEM=block
E: TAGS=:systemd:
[…]

更新1

我一直在运行udev_log="debug",同时拔出和回复阅读器和SD卡,突然,直到现在,我的规则被应用了一次。但是,查看来自udev的日记调试日志并进行比较,除了内核日志、udev守护进程日志和分叉udev工作程序以及seq编号之间的竞争之外,我看不到其他的区别。

更新2

我已经把问题减少了很多。当USB卡读取器在引导过程中附加时,标签就可用了。当我稍后(重新)附加它时,标签就丢失了。

我遗漏了什么?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2019-09-05 08:50:52

显然,有一件事正在发生:https://github.com/systemd/systemd/issues/7587

长话短说:标记只对每个事件有效,而不是持久化。从规则文件中删除ACTION=="add",使其工作

票数 0
EN

Ask Ubuntu用户

发布于 2019-05-15 03:58:31

最有可能的是,该标记被另一条规则覆盖。

  • Ubuntu 18.04得到了更新的规则。在系统规则文件夹中检查使用grep -r TAG,请参见man udev
  • 自定义规则文件给定的低编号..。使用udevadm test ...udevadm trigger ...验证为该事件处理的规则。
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1143191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档