Xen0 on netbsd-current

うちのぜん様マシン、NetBSD current を久々に更新して 4.99.14 にしたら、 xen関連のデーモンが上がらなくなった。

/netbsd: pid 96 (xenconsoled), uid 0: exited on signal 12 (core dumped)
/netbsd: pid 630 (python2.4), uid 0: exited on signal 12 (core dumped)
/netbsd: pid 100 (xenbackendd), uid 0: exited on signal 12 (core dumped)
/netbsd: pid 97 (python2.4), uid 0: exited on signal 12 (core dumped)
/netbsd: pid 661 (python2.4), uid 0: exited on signal 12 (core dumped)

うぎゃ? signal 12 は

#define SIGSYS          12      /* bad argument to system call */

システムコール周りかー。pkgsrc/sysutils/xen3* あたりを updateしたが状況変わらず。追っかける時間もないので、うーん、うーん、 Xen様サーバはcurrentやめて、netbsd-4 ブランチかな。
よわ。

てことで、ひとまず4.99.4カーネルで上げ直し、DOMUの netbsd-4 ブランチ マシンでXEN3_DOM0カーネルをmakeして親分にコピーしてリブート。あ、 行けた。ちょうどnetbsd-4ブランチを仕切り直して作った時期のcurrent だったからすんなり移行できたのかな。


GRUB+Xen3+NetBSD_DOM0でシリアルコンソール

うまくいかないと思い込んでたがちゃんと、シリアルデバイスの パラメータを合わせれば行けた。パラメータ合わせを行なうべき箇所が 3つあるので全部合わせやう。既にNetBSD 4系 or NetBSD current (4.99.x) で XEN0ブートできる環境が整っているものと仮定。

  1. MULTIBOOTオプションつきでXEN0カーネルを構築
  2. /grub/menu.lstをいじくる
  3. シリアルコンソールを持つマシンからつなぐ

の3段階。

  1. MULTIBOOTオプションつきでXEN0カーネルを構築

    /usr/src/sys/arch/i386/confXEN3_DOM0 を直接いじると気分悪いのでそれをincludeするようないかのファイルを つくるとよろし。

    #
    # XEN3_0: Xen 3.0 domain 0
    include "arch/i386/conf/XEN3_DOM0"
    options         MULTIBOOT       # Multiboot support (see multiboot(8))
    

    このファイルを XEN としたならば、

    config XEN
    cd ../../compile/XEN
    make depend all
    

    などとしてカーネルを作り、XEN0用のカーネルファイル名でインストール。 仮にそれを /netbsd-XEN3D0 とする。

  2. /grub/menu.lstをいじくる

    こんな感じ(必要部分のみ抜粋)。

    serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
    
    title NetBSD-Xen(serial)
      root(hd0,0)
      kernel (hd0,a)/xen dom0_mem=65536 com1=115200,8n1
      module (hd0,a)/netbsd-X3D0 root=/dev/hda1 ro console=com console_speed=115200
  3. シリアルコンソールを持つマシンからつなぐ

    XEN0のマシンのRS-232Cが繋がっているマシンの /etc/remote にこんな感じ。

    xencons|xen:dv=/dev/com0:br#115200:pa=none:hf:dc:
    

    もちろんデバイス名は個体に依る。

通信速度等はカーネル設定ファイルにも埋め込める。multiboot(8)参照。 grub、xenカーネル、netbsdカーネルから見た第1comデバイスの番号が 0だったり1だったり、ややこしね。

しかし、

break信号を送っても、DDBに落ちてくれない。あちゃー。
2008年9月28日に解決


叱咤激励感想ツッコミはゲストブック

Generated with mkdiary.rb
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]