link_priority
udevルールのオプションは、ルール処理の順序とどのように関連していますか?たとえば、デフォルトの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
そのため、0
rtcプロバイダがあるたびにhctosys
常にrtc0
高くなりますlink_priority=-100
。
link_priority
カスタムファイルのルールをより高いルールに変更すると、ファイル番号が高いため、元のファイルが上書きされるため、10-custom.rules
機能しません。50-udev-default.rules
したがって、カスタムルールファイル名には50より大きい数字を使用してください。