udevルールは少数では機能しない

udevルールは少数では機能しない

私は、デバイスが挿入されているポートに対してデバイスを永続化するために、ID_PATH を使用する udev ルールを書いていました。

これが私が持っているものです

  KERNEL=="ttyUSB?",SUBSYSTEM=="tty",ENV{ID_BUS}=="usb",ENV{ID_PATH}=="pci-0000:00:12.0-usb-0:1:1.0",SYMLINK="bla"

最初は、ファイル名は 52-foo.rules でしたが、動作しませんでした。名前を 81-foo.rules に変更したら、正常に動作するようになりました。

ENV{} 値は、数値が十分に大きい場合にのみ有効であるようです。なぜそうなるのかを誰か説明してもらえますか?

ありがとう、

答え1

おそらく、ルールが別のルールによって上書きされているのでしょう。 大きい番号のルールは最後に実行されるため、大きい番号を使用しても上書きされることはありません。

< 60  most user rules; if you want to prevent an assignment being
overriden by default rules, use the := operator.

these cannot access persistent information such as that from
vol_id

< 70  rules that run helpers such as vol_id to populate the udev db

< 90  rules that run other programs (often using information in the
udev db)

>=90  rules that should run last

チェックこれ

関連情報