我有一个非常简单的 udev 规则/etc/udev/rules.d/sdcard.rules
:
KERNEL=="mmcblk1", SUBSYSTEM=="block", SYMLINK+="sdCARD"
问题是符号链接不是在启动时自动为我创建的。我有许多其他规则,并且所有规则在启动时都工作得很好(我的符号链接已创建)。
但是,如果我运行此命令,则会创建符号链接:
udevadm test /block/mmcblk1
这里可能发生了什么?为什么它不在启动时创建?该设备还无法使用吗?我怎样才能发现这一点?
更新一
udevadm 的输出:
looking at device '/block/mmcblk1':
KERNEL=="mmcblk1"
SUBSYSTEM=="block"
DRIVER==""
ATTR{ro}=="0"
ATTR{size}=="3862528"
ATTR{stat}==" 9 0 74 0 1 0 8 0 0 0 0"
ATTR{range}=="8"
ATTR{discard_alignment}=="0"
ATTR{force_ro}=="0"
ATTR{ext_range}=="8"
ATTR{alignment_offset}=="0"
ATTR{inflight}==" 0 0"
ATTR{removable}=="0"
ATTR{capability}=="10"
答案1
将规则文件重命名为:/etc/udev/rules.d/99-sdcard.rules
,可能需要在其之前运行一些规则。
答案2
检查一下
- 引导环境已启用 udev
- 新创建的 udev 规则包含在 Linux 引导环境中。
例如,Arch Linux 的 (#2) 需要$ mkinitpio -P
更新引导 initramfs 映像。