物理シリアルリンクの代わりに擬似ターミナルスレーブ(/dev/pts/N)を使用し、アプリケーションがそのデータストリーム(/dev/ptmx)を処理し、そのストリームを適切なリンクにリダイレクトするようにPPPを設定したいと思います。場所。すべての文書を読んだ後にこれが可能であることを理解していますが、実際にそれを試した人は誰もいません。それでは、PTSに快適さを感じる人なら、私が何かを見逃していないことを確認できますか?
自分で試してみることもできますが、この質問に答えるには多くのソフトウェア開発が必要です。特に、データフローの問題(XOn / Xoffを使用)または待ち時間の問題があると思います。
非常に長い話...
私は組み込みLinux(device#1と呼ばれる)を使用しています。このデバイスには、シリアルリンクを介してホームフロープロトコルを介して2番目のデバイス(デバイス#2と呼ばれる)と通信するアプリケーションがあります。現在、Device#1は、2番目のシリアルリンクに接続されているモデムとPPPを使用して通信します。
要点は、デバイス#2にもモデムがあることです。したがって、ソリューションのコストを削減し、PPPトラフィックを別のデバイス/モデムにリダイレクトするために、デバイス#1からモデムを削除したいと思います。
私の考えは、疑似ターミナルペアを使用し、PTMからストリームを読み取るようにアプリケーションを変更し、それをホームクラスプロトコルにラップしてデバイス#2に送信することです。このプロセスを正しく処理するようにデバイス#2を変更できますが、それは重要ではありません。
- デバイス#2にはオペレーティングシステムはありません(2つのデバイス間でsocatを合理的に使用することはできません)。
- tty0ttyが解決策かもしれませんが、可能であればパッケージのインストールを避けたいと思います。
- セキュリティ上の理由から、デバイス1(Linux)ではSSL / TCPを設定する必要があります。これは必須です。
答え1
以前はSSH接続を介してトラフィックを実行したことがありますが、pppd
これはあなたが試しているものと似ています。転送されたTCP接続の作成/解除によって問題が発生する従来のSSHトンネリングの問題が発生した後、これを行いました。 ssh + pppdコンボがうまく機能するので、遅延の問題があまり発生しないことを願っています。しかし、Xon / Xoffの状況については言えません。
ファイルに/etc/ppp/peers/<linkname>
次の行が含まれています。
pty "/usr/bin/ssh -t -P -l username servername"
明らかに、ssh
このコマンドをシリアルリンク変換のための独自のツールに置き換えたいと思います。
socat
私と同じことをされた方もいらっしゃいますが、nc
効果があってほしいです。