USBモデムが複数の/ dev / ttyUSB *ファイルを生成するのはなぜですか?

USBモデムが複数の/ dev / ttyUSB *ファイルを生成するのはなぜですか?

私はクライアントとSMSメッセージを送受信するために使用するSierra Wireless USB 308モデムを持っています。

単一のデバイスが接続されると、システムは複数のデバイスファイルを生成します。/dev/ttyUSB0、、、。テキストメッセージを送信するには、3番目のデバイスファイル()が必要であることをどこかで読みました。私はそれを使用しています/dev/ttyUSB1/dev/ttyUSB2/dev/ttyUSB3/dev/ttyUSB2SMSツール

質問:

  1. 単一のデバイスが/devディレクトリに複数のデバイスファイルを生成するのはなぜですか?
  2. 各デバイスファイル(「XXX」は「0」、「1」、「2」、または「3」)で実行されている場合、各「デバイス」の情報はほぼ次のとおりです/dev/ttyUSB2。同じ。デバイス番号は必ずしも同じではないので、使用する適切なデバイス番号を取得するルールをどのように作成しますか?/dev/sms-sierraudevadm info -a /dev/ttyUSBXXXudev

1番の質問はわかりません。質問2の場合、デバイスファイルがSMSを送信できるかどうかを検出するためにプログラムが必要ですか?

答え1

一般的なことですが、まだ神秘的です。 TelitとHuaweiモデムも同じ機能を果たします。少なくともTelitのいくつかを指定してください。Linux USBドライバ - ユーザーガイド

たとえば、現在使用されているTelit LE910の場合、USB PIDは0x1201で、Linux "5ポート/ dev / ttyUSBx"にシリアルで提供されると記載されています。この表には、次の興味深い脚注があります。

モデムによって公開されたすべてのポートがATコマンド送信に使用できるわけではありません。ポートの配置手順については、該当するATコマンドのユーザーガイドを参照してください。

「ATコマンド」の手がかりに従うことは愚かな仕事であることがわかりました。代わりに、「ポート配列の説明」を検索すると、より多くの情報が表示され、一部は誤解を招く可能性があり、一部は説明的です。この画像は「TELIT 3Gモジュールポートアレイユーザーガイド」に表示されます。

ここに画像の説明を入力してください。

緑のチャンネルに注意してください。モデムには、USB(DTE)を介してコンピュータに接続したときに複数の「USBチャンネル」を提供する「仮想シリアルデバイス」があります。これらのチャネルをモデム「アクセスポイント」にマッピングすることは設定可能である。 「AT0」、「AT1」及び「AT2」アクセスポイントは、同時のATコマンドセッションを提供するようである。 「TT」アクセスポイントは、「TTC接続」を生成するために「TTCツール」で使用される以前の通信インターフェースであるようです。最後に、GPSアクセスポイントは標準のGNSSインターフェイスであり、NMEAの説明を提供できます。

したがって、あなたのモデムの設定方法に応じて、あなたのデバイスttyUSBにはこれらのアクセスポイントが配置されていると予想されます。

たとえば、試行錯誤を経て、最初の2つと最後(ttyUSB0、、、)はATポートではなく、残りの2つは(ttyUSB1および)でした。ttyUSB4ttyUSB2ttyUSB3

したがって、質問2に対する答えは次のようになります。できません。どのデバイスがどの機能に接続されるかを決定するのはモデムの構成です。

答え2

問題1:カーネルは同時要求のために複数のttyUSBを生成し、他のプログラム(WvDial、pppd、ModemManagerなど)に接続している場合は/ dev / ttyUSB0を使用してSMSメッセージを送信できません。

質問2: ミニコンピュータ

関連情報