Hatena::ブログ(Diary)

(ひ)メモ このページをアンテナに追加 RSSフィード

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 | 06 | 08 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2015 | 01 | 02 | 07 | 10 |
2016 | 01 | 05 | 10 | 12 |
2017 | 07 |
2018 | 05 |