シリアル端末をコピーする方法は?

シリアル端末をコピーする方法は?

これはXYの問題かもしれませんが、1つのシリアル端末(たとえば/ dev / ttyUSB0)を2つの端末に複製したいと思います。両方の端末のうちの1つの入力は実際の端末に多重化され、出力は両方の端末に供給される。これを達成するためのツールはありますか/これは可能ですか?

私はしばしばシリアルを介して組み込みハードウェアと作業するために小さな端末エミュレータを使用します。用語。インタラクティブ端末を常に開いたままにして、実行コマンドシーケンスも使用したいと思います。予想される上。たとえば、U-Bootプロンプトで再起動して停止します。

私は次のように使用されるツールを想像しています。

$ teeterm /dev/ttyUSB0
Clone successful: /dev/pts/3 and /dev/pts/4 available.
$ dterm /dev/pts/3 115200

他のシェルから: $ ./uboot (which spawns and interacts with dterm /dev/pts/4 115200)

ベストアンサー1

dirktによって公開されたサンプルコードに基づいて、このための実際のユーティリティを構築しました。これはGithubで見つけることができます

私は最終的に以下を使用しました。 teeterm dterm /dev/ttyUSB0 115200 (in another shell) dterm pty0 (in another shell) dterm pty1

両方の擬似端末はコマンドプロセスI / Oにアクセスできます。このユーティリティの最も重要な側面はフォーク疑似端末(ユーザーが利用できない)呼び出しを介して子プロセスを制御します。開いているそして選ぶ2 つの疑似端末を生成し、3 つの疑似端末すべてへの入力を監視するために呼び出されます。

おすすめ記事