VMware上のT-Kernel/x86での開発・デバッグのための覚え書き

概要

PMC T-Kernel/x86は、VMware Player上で動くことから、T-Kernelベースのアプリケーションの開発効率の観点からは非常に有用であると考えられます。しかし、VMwareを用いた場合、gtermやgdb等のシリアル接続を用いるツールをどうするかが問題となります。(同じマシンの二つの実シリアルポートを実際にケーブルでつないでやれば何とかなる…という話もありますが、あまりスマートじゃありません。)

そこで、VMware Playerで仮想的なシリアル接続を用いてgterm, gdb等のツールを使う方法を示します。

手順

/home/takeshi/vmware/serial-{pipe, pty}はお好きな名前に変更してください。

  1. VMwareのマシン設定ファイル(T-Kernel_x86.vmx)で、シリアルを名前つきパイプとして仮想的に出力させるように設定する(下例参照):
    serial0.present = "TRUE"
    serial0.fileType = "pipe"
    serial0.fileName = "/home/takeshi/vmware/serial-pipe"
    serial0.pipe.endPoint = "server"
  2. 仮想マシンを起動する。(例:vmplayer T-Kernel_x86.vmx)
  3. socatを以下のパラメータで起動し、先ほどのserial-pipeが仮想端末serial-ptyにrelayされるように設定する:
    socat -d -d -d -d /home/takeshi/vmware/serial-pipe PTY,link=/home/takeshi/vmware/serial-pty 2>/dev/null
    なお、-d -d -d -dは、筆者の環境でつけないとsocatが落ちてしまうためにつけているだけなので、問題が起きないようならはずしてよい。
  4. あとは適当に /home/takeshi/vmware/serial-pty を /dev/ttyS0 のようなシリアルデバイスの代わりに接続先に用いてやればよい(下例参照):

※ Aさんのご指摘により、serial0.pipe.endPoint = ... の行を追加しました。貴重な情報、ありがとうございました。


[ 戻る ]

Yashiro Takeshi <yashiromann@gmail.com>
Last modified: Sun Oct 3 16:39:06 2010
Valid XHTML 1.0!