4

現在、シリアル回線を介してCiscoデバイスと通信するプログラムを開発する必要があります。開発用のLinuxマシンでテスト環境を構築したいと思います。だから、私はdynamipsciscoエミュレーターを見つけました。このエミュレータは、「-U / dev/ttyS0」オプションを使用してシリアル回線を介してインターフェイスを提供できます。これにより、ダイナミプスはハードウェアのシリアルポートを開き、それを介して通信します。minicomなどのシリアルクライアントを使用して、別のLinuxマシンからこのハードウェアシリアルポートに接続できます。

ただし、両方のLinuxマシンでvirtualboxを使用しているため、virtualbox機能を介してシリアルポートをリンクし、シリアルポートを名前付きパイプに転送します。このスキームは機能しているようですが、非常に冗長です。単一のLinuxマシンでdynamipsとminicomを実行する方法を探しています。

私の場合、疑似端末が役立つ可能性があることがわかりました。しかし、「-U / dev / ptmx」を使用してdynamipsを実行してから、minicomに接続して/ dev / pts/...ポートを作成しようとしました。その逆も同様です。どちらの場合も、両側で入出力エラーが発生します。

4

1 に答える 1

6

残念ながら、最近の擬似端末はそれほど簡単ではありません。posix_openpt()またはでマスターを開いた後、マスターFDとそれに対応するスレーブデバイスを使用する前に、マスターFDを呼び出すopen("/dev/ptmx")必要があります。(などのユーティリティ関数はこれを単純化します。)grantpt()unlockpt()openpty()

回避策として、これまでになく便利なsocatが役立つ場合があります。

# ターミナル1
socat pty:link = $ PWD / pts unix-l:$ PWD / ptm-pipe&
ダイナミプス-U$PWD / pts

# ターミナル2
socat unix:$ PWD/ptm-パイプ-
于 2010-02-03T16:39:11.760 に答える