udevは起動時にルールを実行しませんか?

udevは起動時にルールを実行しませんか?

非常に単純なudevルールがあります/etc/udev/rules.d/sdcard.rules

KERNEL=="mmcblk1", SUBSYSTEM=="block", SYMLINK+="sdCARD"

問題は、起動時にシンボリックリンクが自動的に生成されないことです。私は他の多くのルールを持っており、起動時にすべてうまくいきます(シンボリックリンクが生成されます)。

ただし、このコマンドを実行するとシンボリックリンクが生成されます。

udevadm test /block/mmcblk1

ここで何が起こりますか?なぜ起動時に生成されないのですか?デバイスはまだ機能していませんか?これをどのように発見できますか?


アップデート1


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

確認する

  1. ブート環境でudevが有効になっています。
  2. 新しく作成されたudevルールはLinuxブート環境に含まれます。

たとえば、Arch Linux(#2)には、$ mkinitpio -P更新されたboot initramfsイメージが必要です。

関連情報