socat は、Linux から Solaris にシリアルポートを共有するために使用されます。

socat は、Linux から Solaris にシリアルポートを共有するために使用されます。

私はLinuxボックスのシリアルポートをSolaris 10ボックスと共有しようとしています(Solarisシステムにはシリアルポートはありません)。

Linuxボックス(モデムサーバー)から別のLinuxボックスに同じコマンドを実行すると、すべてが正常です。

Solarisでscoutを使用すると問題が発生します。

Linuxボックスでサーバーを起動するには、次のようにします。

$ socat tcp-l:54321,reuseaddr,fork ファイル:/dev/ttyAMA0,nonblock,waitlock=/var/run/ttyAMA0.lock

クライアント側では、次を使用します。

/opt/csw/bin/socat pty,link=$HOME/dev/vmodem0,waitslave tcp:モデムサーバー IP:54321

しかし、エラーメッセージが表示されます。

bash-3.00# /opt/csw/bin/socat pty,link=$HOME/dev/vmodem0,waitslave tcp:modem-server-ip:54321 2015/09/10 21:07:10 socat[10085] E 解析( ): 不明なオプション "waitslave"

waitslave オプションを削除すると起動しますが、/dev/vmodem0 は独自の親ディレクトリへのシンボリックリンクとして生成されます。

bash-3.00# ls -lad /dev/vmodem0 lrwxrwxrwx 1ルートルート
0 9月10日21:06 /dev/vmodem0 ->

bash-3.00# ls /dev/vmodem0/vmodem0/vmodem0/

関連情報