2010-07-29 (Thu)
MacのVMware Fusion (2.0.7)のゲストOSのシリアルポートに繋ぎたい
GUIで設定できるシリアルポートは、ホストOS側からはただのファイルにしかみえない。なので、tail -f するぐらいならいいけど、シリアルコンソールとしては使えない。(VMware Fusion 3ではGUIで設定できるんですかね?)
ホスト側にUNIXドメインソケットとして見せるには、設定ファイル(*.vmx)を手で編集する必要がある。既存の「serial0.*」の行を消して、こんなのを追記すればOK
serial0.present = "TRUE" serial0.fileType = "pipe" serial0.fileName = "/tmp/serial-guest01" serial0.tryNoRxLoss = "TRUE" serial0.startConnected = "TRUE"
これで、ゲストOSのttyS0がホストOSでは/tmp/serial-guest01としてみえるようになる。
ゲストOS(ぼくの場合はLinux)のシリアルコンソール(grubとかbootparamとかgettyとか)の設定は、Remote Serial Console HOWTO (JFの日本語訳)を参照のこと。
次に/tmp/serial-guest01にどうやって繋げるか。
socatを使う。古いsocatだと、MacでUNIXドメインソケットのハンドリングができないっぽいので、最新のsocat 1.7.1.2をソールからビルドした。
接続方法その一。socatを使って、UNIXドメインソケットをptyにブリッジして、
(ptyのlink=がなぜか効かないので、デバイスファイル名を確認するため-d -d でデバッグメッセージ表示するようにしている)
$ socat -d -d unix-connect:/tmp/serial-guest01 pty:raw,echo=0
socatが作ったデバイスに、jermやcuなどでptyに接続する。
$ jerm /dev/ttys008
接続方法その二。socatを使って、とあるポートのTCP接続をUNIXドメインソケットにブリッジして、
$ unix-connect:/tmp/serial-guest01 tcp4-listen:1919,reuseaddr
telnetとかncとかで、繋げる。
$ telnet hostOS 1919 $ nc hostOS 1919
トラックバック - http://d.hatena.ne.jp/hirose31/20100729/1280380054
2003 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 05 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 12 |
2012 | 01 | 02 | 03 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 05 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 12 |
2012 | 01 | 02 | 03 |



