web-dev-qa-db-ja.com

どのデバイスがどの/ dev / ttyUSBポートに接続されているかを知る方法

2つのWavecom16ポートモデムを使用しています。モデムをシステムに接続すると、すべての/dev/ttyUSBポート名を一覧表示できますが、どのモデムにポート0〜16が含まれ、どのモデムにポート17〜32が含まれているのかを知りたいですか?

モデムは1日に何度も取り付けたり取り外したりする可能性があるため、モデムが切断されて再び接続されたときにもログを保持したいと思います。

C/c ++/php script/node.jsを使用してこれを行う方法はありますか?

11
Mayur

この情報は、sysファイルシステムから取得できます。シェルから確認して、同じことを行うプログラムを実行するのは簡単です。

  1. cd /sys/devices
  2. 最初のポートのディレクトリを見つけます:find -name "ttyUSB0"。おそらく./pci0000:00/0000:00:1d.0/usb2/2-2/2-2.1/2-2.1:1.0/...のようなものでそれらを見つけるでしょう
  3. pci*部分はUSBコントローラーです。興味深いのは、USBデバイスである2-2.1です。そのディレクトリには、デバイスを識別する多くのファイルがあります。

    • serial:シリアル番号。おそらくあなたが望むもの。
    • idVendorおよびidProduct:デバイスのUSB識別子。

手順1と2の代わりに簡単な方法は次のとおりです。

  1. cd /sys/class/tty/
  2. readlink ttyUSBnは、デバイスディレクトリのフルパスを提供します。

脚注として、sysfsの一部はAPIで安定していると見なされ、一部はそうではないことに注意してください。詳細については、 公式のsysfsルール を参照してください。

19
rodrigo