Debian -- /dev/tty* などのファイルを含む USB デバイスを識別する方法

Debian -- /dev/tty* などのファイルを含む USB デバイスを識別する方法

私の組み込みシステムには、2つのUSBデバイスが同様の/devファイル/dev/ttyACMxにマウントされています。デバイスはPOSデバイスで、もう1つはプリンタです。

どのデバイスがttyACM0なのかttyACM1なのかわかりません。私の推測では、特定の順序を想定できないようです。

もしそうなら、ttyACM0とttyACM1が検出されたら、どのUSBデバイスがtty *ファイルにバインドされているのか、どうすればわかりますか?

確認しましたLSSBそしてUSBデバイスただし、情報をリンクできません。

ありがとう

ベストアンサー1

ルートとして、出力はデバイスを識別するために使用できるすべての属性をudevadm info -q all -a -n /dev/ttyACM0出力します。また、デバイスに対してある種のアクティブ検索を実行する場合は、既存のudevルールによって生成される可能性がある環境変数を表示するオプションを/dev/ttyACM0省略することもできます。-a

/dev/ttyACM0との出力に違いがある場合は、/dev/ttyACM1その違いを使用してどちらがどちらであるかを識別できます。

これは/dev/ttyACM*、これらのデバイスがもともとRS-232シリアルデバイスであり、USB互換を可能にするために通常のUSBシリアルコンバータチップが追加されたことを示します。その場合、利用可能な情報の量は、デバイスをUSBバスに表示するようにコンバータチップを設定する方法によって異なります。最良の場合は、各デバイスの種類を識別する属性があり、自動的に生成された別名がすでに存在する可能性があります。/dev/serial/by-id/*

最悪のシナリオでは、トランスデューサチップに固有のエントリ(シリアル番号ではない)がない可能性があり、一部の識別要求をデバイスに送信し、結果の応答を確認してアクティブプロービングを実行するためのudevルールの一種を実装する必要があります。または、各デバイスタイプに特定のUSBポートを割り当て、USBポートのsysfsパスで識別します。その場合は、以下を確認してください/dev/serial/by-path/*。利用可能な自動生成されたデバイスエイリアスがすでに存在している可能性があります。

デバイスを区別するために使用できるプロパティまたはプローブを見つけたら、udevルールを設定して、POSデバイスやプリンタに適したデバイスなどのデバイスにタイプ別のエイリアスを/dev/ttyACM*割り当てることができます。これは物理デバイス名へのシンボリックリンクですが、アプリケーションはそれを物理デバイスのように使用できます。/dev/POS/dev/receipt

おすすめ記事