あきらめるな Xen Dom0

NetBSD/amd64 でのXenのまとめは昨日書いたとおりだ が、ひそかにDom0起動に苦労していたので、簡単なまとめを。

まず、NetBSD/amd64 が起動できているなら、まずXenも使えると 思ってよい。すんなりGENERICカーネルで起動できたなら、Xenも苦労しない。 逆に、GENERICカーネルでは起動できず、ちょっと手を入れたカーネルで 起動できた、というような場合は XEN3_DOM0 カーネルも全く同様の 問題が起きてブートしない、ということを忘れがちなので気をつけやう。

たとえばわしの場合、Asrock A780FullDisplayPort というマザーボードだが、 これは、pckbd* at acpiohci を無効化しないと正常起動できない。 XEN3_DOM0の場合も同じで、これを無効化しないと同じところでpanicする。 ただ、xenの場合はpanicメッセージなどがすべて出力されずバッファリング されたままでハングしてしまうので、一見xenカーネルそのものが起動していな いように錯覚してしまう。これはたとえば grub/menu.lst

kernel=(hd0,a)/xen sync_console

のように sync_console パラメータを追加してみると ちゃんとnetbsdカーネルが出したメッセージまでだいたい出てくる。

もうひとつ、エラーメッセージが得られない似た問題として、 もし xenの出力をシリアル回線にしているのであればxenカーネル起動にも シリアル回線のパラメータとして同じ値をつけなければならない点に注意。 もし115200bpsに変えているような場合は以下のようなエントリとなる、

title NetBSD4-Xen(com)
  root(hd0,0)
  kernel (hd0,a)/xen dom0_mem=531072 com1=115200,8n1
  module (hd0,a)/netbsd-custom_xen0 console=com console_speed=115200 

もちろん installboot(8) でのパラメータを speed=115200 に 合わせることが必要。これらのパラメータのどれか1つでも食い違うと 全く出力が得られず、xen xen xenいや失礼全然xenが起動できてないかのように 見えてしまうが、そんなことはない、はず。

xenの準仮想化モードで動くOSは軽快で得した気分なので xen in xen いや失礼全員xenを楽しんでもらいたいモンである。