2009年11月18日水曜日

Installation of Xen 3.4.2 with Ubuntu as Dom0 - part 2

前回の続き。

"error getting signalfd"でいろいろ調べると、
  • udevdは最近(いつから?)signalfdというシステムコールを使うようになった。
  • "man signalfd" には、"signalfd() is available on Linux since kernel 2.6.22."とある。
  • Xenが公式サポートしているkernelは2.6.18なので、signalfdがない
ということのようです。つまり、udevのような起動に関係するモジュールは新しい(Ubuntu 9.10だから)のに、kernelが古いのが原因です。

ということは対策としては、
  1. 2.6.22以上のXenified kernel(Xen対応kernel)を使う。
  2. udevdを、signalfdを使っていないバージョンに下げる。
の2つが考えられますが、2だと芋づる式にいろんなモジュールが動かなくなる恐れがあるので、1にしました。Ubuntu 9.10のkernel (2.6.31-14) はnon-Xenifiedなので、"Xen paravirt_ops for upstream Linux kernel" に載っていた "latest Xenified kernel" を使うことにします。
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
$ cd linux-2.6-xen
$ cp /boot/config-2.6.31-14-generic .config # 現在のconfigファイルを元にする
$ make menuconfig # 後述
$ make bzImage && make modules
# make modules_install
# cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.31.5
# cp .config /boot/config-2.6.31.5
# depmod 2.6.31.5
# mkinitramfs -o /boot/initrd.img-2.6.31.5 2.6.31.5
とビルド & インストールします。"Xen paravirt_ops for upstream Linux kernel" によれば、下記のconfig optionが必要とのことなので、"make menuconfig" 後に確認しましょう。
  • CONFIG_XEN=y
  • CONFIG_XEN_MAX_DOMAIN_MEMORY=32
  • CONFIG_XEN_SAVE_RESTORE=y
  • CONFIG_XEN_DOM0=y
  • CONFIG_XEN_PRIVILEGED_GUEST=y
  • CONFIG_XEN_PCI=y
  • CONFIG_PCI_XEN=y
  • CONFIG_XEN_BLKDEV_FRONTEND=m
  • CONFIG_NETXEN_NIC=m
  • CONFIG_XEN_NETDEV_FRONTEND=m
  • CONFIG_XEN_KBDDEV_FRONTEND=m
  • CONFIG_HVC_XEN=y
  • CONFIG_XEN_FBDEV_FRONTEND=m
  • CONFIG_XEN_BALLOON=y
  • CONFIG_XEN_SCRUB_PAGES=y
  • CONFIG_XEN_DEV_EVTCHN=y
  • CONFIG_XEN_BACKEND=y
  • CONFIG_XEN_BLKDEV_BACKEND=y
  • CONFIG_XEN_NETDEV_BACKEND=y
  • CONFIG_XENFS=y
  • CONFIG_XEN_COMPAT_XENFS=y
  • CONFIG_XEN_XENBUS_FRONTEND=m
さて、このkernelを使えば起動するかと思いきや、今度は突然画面が消えてしまう現象が発生。画面に何も表示されないので、当然エラーメッセージも何もありません。
Xenを使わずに、普通にLinuxとして起動しても同様です。

うーん、困ったなー。ということで次回に続く。

0 件のコメント:

コメントを投稿