![阻止 udev 处理设备的规则](https://linux22.com/image/184724/%E9%98%BB%E6%AD%A2%20udev%20%E5%A4%84%E7%90%86%E8%AE%BE%E5%A4%87%E7%9A%84%E8%A7%84%E5%88%99.png)
在 Ubuntu 20.04 上,我修改/usr/lib/udev/rules.d/60-evdev.rules
如下,因为我不想让 udev 触摸我的原始键盘设备:
# do not edit this file, it will be overwritten on update
ACTION=="remove", GOTO="evdev_end"
KERNEL!="event*", GOTO="evdev_end"
ATTRS{name}=="AT Raw Set 2 keyboard", GOTO="evdev_end"
[...]
LABEL="evdev_end"
这可行,但我担心“不要编辑此文件”行。我想要一种更干净的方式来做同样的事情。我尝试将此行移动到名为 的文件中/etc/udev/rules.d/01-atkbdraw.rules
,但这会导致以下错误:GOTO="evdev_end" has no matching label, ignoring
。
我还尝试使用 := 运算符,如下所示:
ATTRS{name}=="AT Raw Set 2 keyboard", RUN:="/bin/true"
但这不起作用,我认为它只会影响“RUN”键,并且不会完全停止进一步处理。
我看到有一个名为last_rule的选项,它似乎正是我所需要的,但它在版本147中被删除了。
有没有一种方法可以让我在不编辑的情况下做我想做的事情/usr/lib/udev/rules.d/60-evdev.rules
?
答案1
复制/usr/lib/udev/rules.d/60-evdev.rules
到/etc/udev/rules.d/60-evdev.rules
。只要保持相同的文件名,它就会被覆盖。检查man udev
文件夹优先级。
该注释位于 中/usr/lib/udev/rules.d/60-evdev.rules
,因为该文件夹中的文件是已安装软件包的一部分,它们可能会被更新覆盖。
答案2
GOTO="evdev_end"
是错的 !!没有与文件名匹配。
必须GOTO="atkbdraw_end"
用于您的文件01-atkbdraw.rules