kernel-xen.sh: This script builds the Linux Kernel for a Xen Hypervisor.
The configuration files included here are based on generic Slackware configs.
For 32bit systems, SMP based config was used. You can run "make menuconfig"
before compiling a Xen kernel by passing the "MENUCONFIG=yes" to the script.
Originaly, booting a Xen kernel with LILO bootloader is not supported, so GRUB
has to be used. Since some of us still preffer LILO over GRUB, there is a way
to accomplish this with mbootpack. Basicaly mbootpack takes Linux kernel, initrd
and Xen VMM, and packages them up as a single file that looks like a bzImage
Linux kernel. To select how kernel is packed use "BOOTLOADER=" variable. Valid
options are "lilo" and "grub".
Since generic kernel requires an initrd image, there are aditional variables that
can be used, such as ROOTMOD (list of root filesystem modules), ROOTFS (name of a
module to use) and ROOTDEV (name of root filesystem device).
After a new kernel image is created, add something like the folowing to lilo.conf:
image = /boot/vmlinuz-xen
root = /dev/sda2
label = XenLinux
append="dom0_mem=512M -- nomodeset"
Note: everything before "--" is passed to Xen, and everything after "--" is
passed to the Linux kernel.
If for some reason LILO is not good enough, you can always use GRUB.
GRUB may be installed from Slackware's extra repository. The GRUB package
is not available from the Slackware x86_64 distribution, but the source
and a SlackBuild may be found in its extra/source repository.
grubconfig that comes with Slackware's GRUB package may give a starting point
to configure GRUB. Moreover, the Xen User Manual and its README file installed
with the Xen package include details on which parameters to include in the GRUB
configuration file. For example, include these lines in /boot/grub/menu.lst:
title Slackware XenLinux 14.0
kernel /boot/xen.gz dom0_mem=524288 console=vga
module /boot/vmlinuz-xen root=/dev/sda2 ro console=tty0 nomodeset
Note that dom0_mem parameter is critical for a 32bit install.
If your dom0 kernel crashes or freezes at boot, either with an automatic reboot
or with the blank screen, here are some things to try:
- Specify an out of range number to "fbcon" to disable framebuffer altogether,
for an example append fbcon=map:9 to the Linux kernel.
(To see a list of available devices in your system: cat /proc/fb)
- Blacklist framebuffer module from loading. This one requires a bit of
digging arround in dmesg/lsmod to find out wich module is in use.
- Disable framebuffer devices by setting CONFIG_FB=n in kernel config.
- Try another VGA card (sorry).