udevルールの順序とlink_priority

udevルールの順序とlink_priority

link_priorityudevルールのオプションは、ルール処理の順序とどのように関連していますか?たとえば、デフォルトのudevルールから次のコードスニペットを取得します。

50-udev-default.rules:

# select "system RTC" or just use the first one
SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100"

hctosysこれにより、システム時間を提供するデバイスである属性セットを持つRTCデバイスを指す/ dev / rtcシンボリックリンクが作成されます。または、RTCデバイスがシステム時間を提供しない場合/dev/rtc0

それでは、順番を逆にしてみましょう。別々のファイルに分割することもできます。

10-custom.rules:
SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100"

[...]

50-udev-default.rules:
SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"

これは最初のバージョンと同じですか?それとも、最初のシンボリックリンクが生成され、次にシステム/dev/rtc0時間を提供するRTCデバイスへの2番目のシンボリックリンクで上書きされます(rtc0とは異なると仮定)。

答え1

/lib/udev/rules.d/50-udev-default.rulesはい、順序を変更することは、元のファイルであれ別のファイルであれ、同じで独立しています/etc/udev/rules.d/10-custom.rules

link_priorityこの場合、シンボリックリンクを定義する値です。デフォルト値はlink_priorityそのため、0rtcプロバイダがあるたびにhctosys常にrtc0高くなりますlink_priority=-100

link_priorityカスタムファイルのルールをより高いルールに変更すると、ファイル番号が高いため、元のファイルが上書きされるため、10-custom.rules機能しません。50-udev-default.rulesしたがって、カスタムルールファイル名には50より大きい数字を使用してください。

関連情報