kernel-xen.sh: This script builds the Linux Kernel for a Xen Hypervisor. Kernel configuration files included here are based on generic Slackware config files. For 32bit systems, SMP config was used. To run "make menuconfig" before compiling Xen kernel, use: MENUCONFIG=yes ./kernel-xen.sh Originally, booting Xen kernel with LILO bootloader is not supported, and GRUB has to be used. With mbootpack this has changed, and LILO can be used as well. Basically, mbootpack takes Linux kernel, initrd and Xen VMM, and packages them up into a file that looks like a bzImage Linux kernel. This script will select LILO by default, changing to GRUB is easy, use: BOOTLOADER=grub ./kernel-xen.sh Slackware generic kernel requires initrd image, this script assumes root is on /dev/sda2 and filesystem is ext4, changes are made with: ROOTMOD=ext3 ROOTFS=ext3 ROOTDEV=/dev/sda5 ./kernel-xen.sh When using LILO bootloader, this is what the most of lilo.conf should have: image = /boot/vmlinuz-xen root = /dev/sda2 label = XenLinux append="dom0_mem=512M -- nomodeset" read-only Everything on the left side of "--" is passed to Xen kernel, and what's on the right, goes to Linux kernel. When using GRUB, /boot/grub/menu.lst should have these: title Slackware XenLinux 14.1 root (hd0,0) kernel /boot/xen.gz dom0_mem=524288 console=vga module /boot/vmlinuz-xen root=/dev/sda2 ro console=tty0 nomodeset module /boot/initrd-xen.gz Troubleshooting dom0 crashes, freezes, blank screen and such: * Use /proc/fb to find an out of range device id, for example this can be added to Linux kernel: fbcon=map:9 * Look in dmesg/lsmod for potential framebuffer devices to blacklist * Compile Linux kernel with CONFIG_FB=n * Use another VGA card :-)