デフォルトのデバイス名(例:/dev/ttyUSBx)はどこで指定されますか?

デフォルトのデバイス名(例:/dev/ttyUSBx)はどこで指定されますか?

私はudevを介したダイナミックデバイス名マッピングに取り組んでいます。

ターゲット:

マルチユーザーシステムでは、各ユーザーはUSBシリアルコンバーターやPCIeカード(FPGA)などのデバイスを割り当てて解放できます。ユーザーがデバイスを割り当てる場合は、/dev/<user>/<device>割り当てるユーザーの動的名前と権限を使用してノードを作成する必要があります。ユーザーがデバイスを解放したら、devfsノードを削除/名前変更し、権限を取り消す必要があります。

現状:

私は/dev/ttyUSB1USB-Serial Converterを試しています。開発ノードの作成時にudevから呼び出されるPythonスクリプトを作成しました。 USB デバイスの VendorID、ProductID、および SerialNo を取得し、devfs ノード名を返します。例: paebbels/ttyUSB。これはシンボリックリンクに対して機能するため、元のdevfsノードがttyUSB1まだ存在します。

私のスクリプトを使用して元のdevfs名をどのように変更できますか?

udevルールでNAMEコマンドを試しましたが、うまくいきませんでした。ドキュメントによると、NAME は一度だけ使用できます。私のルールの前にNAMEを使用するudevのデフォルトルールはありますか? /etc/udev/...そのような規則は含まれていません。

以降の手順では、私のスクリプトはdevfsノードのユーザー名、グループ、および権限も返します。

マイナーな質問:

/dev/<user>/<device>またはで計画どおりにデバイスファイルを作成する必要がありますか~/fpga1/<device>

答え1

1. 質問:

よくわかりませんが、一度見てください/lib/udev/rules.d/60-persistent-serial.rules

2. 質問:

udev自体がデバイス名を割り当てる場合は、すべてに入力します/dev/run/$UID/devices

関連情報