将 USB 驱动器连接到嵌入式系统时,我需要运行脚本。我的想法是:
SUBSYSTEM=="block",ACTION=="add", KERNELS=="sd?",RUN+="/script param1 %k"
它需要使用任何 USB 棒运行,因此我无法使用供应商特定的参数。现在脚本使用 sd[a..][ ,1..] 执行,但它应该只在 sd[a..] 连接时执行(_ 表示 NULL)。与?它在断开连接时有效,但在连接时,它为每个分区执行是否有可能或者我必须在 Shell 脚本中解析它?
如果有人可以在这里帮助我,那就太好了。(如果有人看到,我删除了问题:对不起,我想, ? 是最终的解决方案。但它也没有工作)。
这是 udevadm info --attribute-walk -name /dev/sda1 的输出
looking at device '/devices/platform/fsl-ehci.1/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sda/sda1':
KERNEL=="sda1"
SUBSYSTEM=="block"
DRIVER==""
ATTR{partition}=="1"
ATTR{start}=="63"
ATTR{size}=="1526112"
ATTR{alignment_offset}=="0"
ATTR{discard_alignment}=="4294935040"
ATTR{stat}==" 0 0 0 0 0 0 0 0 0 0 0"
ATTR{inflight}==" 0 0"
looking at parent device '/devices/platform/fsl-ehci.1/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sda':
KERNELS=="sda"
SUBSYSTEMS=="block"
DRIVERS==""
ATTRS{range}=="16"
ATTRS{ext_range}=="256"
ATTRS{removable}=="1"
ATTRS{ro}=="0"
ATTRS{size}=="15656960"
ATTRS{alignment_offset}=="0"
ATTRS{discard_alignment}=="0"
ATTRS{capability}=="51"
ATTRS{stat}==" 1 0 8 4 0 0 0 0 0 4 4"
ATTRS{inflight}==" 0 0"