udevはID_PATHを使用して永続的な名前付きシンボリックリンクを生成できません。

udevはID_PATHを使用して永続的な名前付きシンボリックリンクを生成できません。

接続されているポートに応じて(USB)デバイスの名前を継続的に指定したいと思います。

udevadminを使用して次の情報を見つけました。

# udevadm info --name=input/event3 | grep ID_PATH
E: ID_PATH=platform-ci_hdrc.1-usb-0:1.1.4:1.0
E: ID_PATH_TAG=platform-ci_hdrc_1-usb-0_1_1_4_1_0

したがって、デバイスには、私が望むものと似たID_PATH属性とID_PATH_TAG属性があるようです。

udev.ruleと一致するように追加しました

SYMLINK+="foo-%E{ID_PATH_TAG} foo1-$env{ID_PATH} foo2-$env{ID_PATH_TAG}"

(この3つのバリエーションは必死に努力しているだけです…動作すれば1つだけで十分です。)

ルールが実行され、ログにエラーがありません(ログレベル=デバッグ)。

ただし、生成されたシンボリックリンクは

/dev/foo-
/dev/foo1-
/dev/foo2-

したがって、私のルールが実行されたときにID_PATH属性とID_PATH_TAG属性が設定されていないようです。注文時に知っておくべきことはありますか?

ベストアンサー1

デバイスの属性のリストを取得するには、まずこのコマンドを実行します。

udevadm info -a -p $(udevadm info -q path -n <devpath>)

そうすれば、

... SYMLINK+=”device_$attr{serial}”, ...

以下のように、必要なデータで環境変数を設定する必要がある場合もあります。

... ENV{SERIAL_NUMBER}="$attr{serial_number}"

後でこれを試してください。

... SYMLINK+="device_$env{SERIAL_NUMBER}"

おすすめ記事