web-dev-qa-db-ja.com

Linux:USBデバイスが同じttyUSB番号を使用するように強制する方法

Ubuntuで使用するUSB​​モデムを持っています。 ttyUSBxx番号を使用してこのデバイスと通信するプログラムもあります。

私の問題は、デバイスを再び取り外したり、接続したりするたび、またはPCを再起動するたびに、デバイスが新しいttyUSB番号を取得することです。たとえば、ttyUSB0またはttyUSB1

このデバイスに常に同じ番号を使用するように強制するにはどうすればよいですか(たとえば、ttyUSB0)?

13
Johny

udevはLinuxの動的デバイスマネージャです。 udevは、接続したデバイスに関する情報を保持します。この情報を変更して、このデバイスのディレクトリに特定の「シンボリックリンク」を追加できます。

これで、USBモデムの定義は/etc/udev/rules.d/フォルダー内にあり、ファイル名は50-udev.rulesのようになります。ファイルには、デバイスごとに1行が含まれています(正しい行を特定するのに役立ついくつかのツールを使用できます。udevinfoの使用に関する以下のリンクを参照してください)

これで、関連する行を編集できます。さらに良いことに、別のファイルを作成して、関連する行をそのファイルにコピーできます。ファイル名は、最初に読み込まれるように、小さい数字(49-my-modem.rulesなど)で始まる必要があります。行の終わりに以下を追加する必要があります:

, SYMLINK="ttyUSBmodem"

これで、デバイスは/dev/ttyUSBmodem(動的に割り当てられた/ dev/ttyUSB [0-9]と同様)として表示されます。

正しい行とプロセス全体を特定する方法の詳細については、以下を参照してください: http://noctis.de/archives/16-HowTo-fixed-name-for-a-udev-device.html

HTH

14
laher