はじめに
Parallels for Mac の仮想シリアルポートと、Macのコンソールでデータをやりとりしたかったのですが、検索してもズバリな記事がなかったので、備忘録としてやり方をメモしておきます。
仮想シリアルポートを作成
まず、Parallels for Mac の構成画面で シリアルポートを作成します。
「ソース...」から「新しいソケット...」を選んで、ソケット名を与えて「サーバー」を選択。
ここでは win10vm というソケット名にしました。
ソケットを特定
Parallels で OS を起動します。
Mac 側のコンソールで lsof -U
を実行して UNIXドメインソケットの一覧をみて、ソケットを特定します。
$ lsof -U | grep win10vm | awk '{ print $8 }'
/var/folders/cz/(中略)/win10vm
socat でソケットに繋ぐ
Mac 側のコンソールで、先程特定したソケットと標準入出力をつなぎます。socat
がインストールされていなければ brew install
してから、
$ socat - UNIX-CONNECT:/var/folders/cz/(中略)/T/win10vm
あとは、Parallels のゲスト OS 側からシリアルポートにデータを送信すれば、その内容が標準出力に出てきます。逆に、文字をタイプする(標準入力にデータを流し込む)と、ゲスト OS 側のシリアルポートにその内容が出てきます。