デバイス項目のudev
「属性」と「属性」の技術的な違いは何ですか?一般に、どのように生成(生成?)され使用されますか?どちらがより良い真実の源泉ですか?
ホットプラグされたシリアルポートアダプタを検出し、ユーザーが自分のデバイスを識別できるように、「関連する」デバイス情報(それは何でも)を表示するようになっているRaspberrypi Pythonアプリケーションの文脈で尋ねます。特に、私はpyudev
図書館インターフェイスを使用した私の計画は、サブシステムデバイスによって提供されるデバイスをlibudev
サブシステムから取得することです。どの値を、どこに提供するのかを調べるために、私が踏んでいたいくつかのテストデバイスのプロパティとプロパティを調べました。これまでの共通点は、アダプターに接続された -> ( ->) -> デバイス祖先チェーン(USBハブの下)があり、ベンダー、モデル、シリアル番号などの値が繰り返されることです。さまざまなプロパティから。 4つの装置(時には3つ、tty
usb-serial
subsystem: tty
subsystem: usb-serial
subsystem: usb, device_type: usb_interface
subsystem: usb, device_type: usb_device
ACM*tty
機器いいえusb-serial
)。では、どこを訪れるべきですか?これらのデバイスに付属の属性/機能に関する(書かれた)規則はありますか?どこで見つけることができますか?
読みました(または少なくとも見ました)。様々な種類 文書 ページしかし、彼らは主に独自のudevルールを書く方法を説明していますが、これは私が求めているものではありません。マニュアルから学びましたudev
([1]、[2]) はATTR
デバイスの sysfs 属性に格納されている値とENV
「デバイス属性」に使用されますが、両方とも一致して書き込むことができます。親デバイスから子デバイスに値を継承する基本的な規則があると思いますが、プロパティとプロパティの両方でこれが起こりますか?
この回答説明する」ENV
両方とも同じ情報が含まれている場合は、ATTR
違いなく両方を使用できます。」、それは私をより賢明にしません。
答え1
属性はudevルールによって設定され、他のルールによって変更できます。
udev は sysfs ノードから属性を読み込みます。 udevルールの属性に値を割り当てると、その値がsysfsノードに書き込まれ、デバイスの動作に影響します。
プロパティを単純な変数と考えることができます。ただし、属性にはゲッターとセッターがあるため、asなどの属性を読み取り、$(cat /sys/devpath/name)
属性に値を割り当てることを検討できます。echo value > /sys/devpath/name