ゲストOSの起動メッセージをホストOS(Mac)のターミナルに出力させたかった.
VMware Fusion6の設定
.vmxファイルをエディタで開き,下記を部分を書き換える.
.vmxファイルはいわゆる仮想マシンファイル(実体はディレクトリ)の中にあるので,
Finderから"右クリックで内容を開く"とか,ターミナルで開くなどする必要がある.
serial0.fileType = "pipe"
serial0.fileName = "/tmp/serial0"
serial0.present = "TRUE"
この後にVMwareのGUIからシリアル接続設定を保存したりすると,変な風に書き換えられてしまうので注意.
これでゲストOSに見えるttyS0と,ホストOSのunix domain socketが通信できるようになる.
Mac側の設定
unix domain socketの読み書きにはsocatを使う.OS X 10.9 Mavericksだとデフォルトで1.7.2.2が入ってるので,それを使えばよし.
socat -d -d unix-connect:/tmp/serial0 stdio
これでOK.
ゲストOSの設定
とりあえず,ゲストカーネルが起動したらもう準備OK
\#echo "nekonekonya-" >/dev/ttyS0
的な感じでsocatで開いているsocketに書き込める.
ブート時のコンソールとして利用したかったので,ブートオプションを変更.
grub2の場合は/etc/grub2/defaultを変更する.grub2の起動時にオプションとして直接打ち込んでもOK.
GRUB_CMDLINE_LINUX='(省略) console=ttyS0,9600n8'
#参考リンク
https://gist.github.com/kuenishi/3825178
http://www.cyberciti.biz/faq/howto-setup-serial-console-on-debian-linux/