9

興味深い問題があります。私は、それぞれがARMプロセッサ上で実行されているLinuxの複数のインスタンスを備えた組み込みボックスに取り組んでいます。それらは内部1GBpsネットワークを介して接続されています。プロセッサAに接続されたシリアルポートデバイスノードがあります(Linux-Aが実行されているとします)。プロセッサB(Linux-Bで言う)で実行されているプログラムが、ローカルでLinux-Bに接続されているかのようにシリアルポートデバイスにアクセスしています。
私のプログラムは、デバイスノードで用語i / oタイプのAPI呼び出しを呼び出して、ttyエコー、文字モード入力を制御します。私が疑問に思っているのは、Linux-Bで利用可能な仮想シリアルデバイスを作成して、内部ネットワークを介してLinux-Aの実際のシリアルデバイスと通信する方法があるかどうかです。

Linux-Bには/dev/ttyvirtualがあります。書き込まれたものはすべて、ネットワークソケットを介してLinux-Aシリアルサーバーに転送されます。シリアルサーバーは、実際のデバイスでapi呼び出しを実行します。たとえば/ dev/ttys0とします。ttys0で待機しているデータはすべて、/ dev/ttyvirtualに転送されます。

これを迅速に行うために必要なすべてのものは何ですか?

ありがとう
Videoguy

更新: http: //fixunix.com/bsd/261068-network-socket-serial-port-question.htmlで、すばらしいポインターに関するディスカッションを見つけました。
もう1つの便利なリンクはhttp://blog.philippklaus.de/2011/08/make-rs232-serial-devices-accessible-via-ethernet/です。

4

2 に答える 2

9

openpty(3)を見てください。これにより、通常の TTY と同じように応答する疑似 TTY ( /dev/pts/0ssh 接続で使用されるようなもの) を作成できますが、接続をプログラムで直接制御できます。

このようにして、ネットワーク接続間でデータを転送するシリアル デバイス (例: /dev/pts/5) をホストできます。その後、他のアプリは、基になるネットワーク ブリッジを知らなくてもシリアル操作を実行できます。

于 2012-06-25T20:00:13.397 に答える
7

私はsocatを使用することになりました

例はここにあります:socatの例

両方のマシンで連続してソキャットします。tcpポートでリッスンし、データをローカル仮想ポートまたはptyに転送します。他のボックスのsocatは、実際のデバイスを入力として使用し、データをtcpポートに転送します。

于 2012-07-11T13:34:35.183 に答える