Debian 6 scrapeで仮想シリアルポートを作成しようとしています。基本的な要件は次のとおりです。
ポートが実際のシリアルポートであるかのように接続する機能(IEでは転送速度、ストップビットなどを設定できる)
comポートのペアは変更されていないままにしてください。
COMポートペア名は、再起動時に固定する必要があります。コンピュータを再起動するたびにコード設定を変更したくありません。
socat -d -d pty, raw, echo=1 pty, raw, echo=1
今日は、正常に生成された/dev/pts/5
合計を/dev/pts/6
ペアとして使用し、単にsocatを使用してみました。しかし、socatを実行している端末を閉じると、ペアは終了します。 tty0ttyがオプションなのかもしれません。使ったcom0comWindowsは過去に大きな成功を収めました。
私の質問は、Linuxで複数のCOMポートをエミュレートできるようにヌルモデムペアを作成する最良の方法は何ですか?
答え1
端末を閉じると、socatも終了します。
実行してみてください
socat -d -d pty, raw, echo=1 pty, raw, echo=1 &
disown
その後、端末を閉じることができるはずです
答え2
私はこの解決策が「永続的」とは思わないが、名前は象徴的であっても静的であろう。 Kotteの回答のおかげで、端末が閉じた後でもsocatが実行され続けます。
socat -d -d PTY,link=/home/someuser/COM0 PTY,link=/home/someuser/COM1 & disown
答え3
ストップビットは実際のUARTがある場合にのみ存在するため、エミュレーションする必要はありません。転送速度はデータを転送できる速度の上限であるため、シミュレーションプログラムを作成するときにデータ速度を適切な速度に制限するだけです。その後、通常の既存のパイプまたはFIFOを使用してエミュレータをコンシューマに接続できます。
pseudo-ttyは実際には転送速度やその他のパラメータに対して何もしないで、以前のバージョンとの互換性のために渡すので、面倒な理由はありません。