これを外部の手段で検出することはできません。一般的な方法は、特定のモデムの製造元とモデルに対して udev ルールをセットアップすることです。または、各 tty に順次接続し、AT コマンドを使用してポートのタイプを確認することもできます。
udev ルールの場合、次のプロセスに従うことができます。
1) モデムの vid と pid を検出します 2) vid/pid に基づいて、/dev/serial/by-id にシンボリック リンクを作成します
たとえば、vid = 1199 および pid 683c の Sierra Wireless MC8795V モデム。ポート 3 が常に AT コマンド チャネルであることはわかっています。したがって、最後に -AT を付けて後置固定したシンボリックリンクを作成できます。
AT コマンドを介して検出する場合、最善かつより一般的な方法は、AT コマンドを実行して tty が応答するかどうかを確認することです。モデムがエコーしないように設定されている場合は、エコー バックまたは OK が返されるはずです。
例えば:
AT
AT
OK
応答があれば、AT 制御ポートまたは PPP ポートが見つかったことを意味します。これを確認するには、ATI コマンドを実行します。応答に APP1、APP2、APP3 が含まれている場合は、PPP ポートにアクセスしています。それ以外の場合は、AT 制御ポートを見つけました。
たとえば、AT 制御ポート:
ATI
Manufacturer: Sierra Wireless, Incorporated
Model: MC8795V
Revision: K2_0_7_46AP C:/WS/FW/K2_0_7_46AP/MSM6290/SRC 2010/10/27 22:15:30
IMEI: XXXXXXXXXXXXXXX
IMEI SV: 20
FSN: D9A2160146410
3GPP Release 6
+GCAP: +CGSM,+DS,+ES
OK
たとえば、PPP ポート:
ATI
Sierra Wireless, Incorporated
MC8795V
APP1
OK
ただし、警告の言葉。Sierra Wireless モジュールの場合、どのポートがどのポートであるかが明確に示されます。他のメーカーの場合は、USB インターフェース ガイドをチェックして、ATI 経由でこのアプローチが可能かどうかを確認する必要があります。