summaryrefslogtreecommitdiffstats
path: root/system/xen/dom0/README.dom0
diff options
context:
space:
mode:
Diffstat (limited to 'system/xen/dom0/README.dom0')
-rw-r--r--system/xen/dom0/README.dom0118
1 files changed, 65 insertions, 53 deletions
diff --git a/system/xen/dom0/README.dom0 b/system/xen/dom0/README.dom0
index 728e3bae79..804d0efb00 100644
--- a/system/xen/dom0/README.dom0
+++ b/system/xen/dom0/README.dom0
@@ -1,77 +1,89 @@
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:
+* Kernel config files found here are based on generic Slackware ones with
+ some Xen settings enabled to get it going. Only x86_64 architecture is now
+ supported because Xen no longer builds a 32-bit VMM image. This readme is
+ by no means complete or a replacement for Linux Kernel and Xen docs.
+
+* 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:
+* This script will also create an initrd image, with the following defaults:
+
+ ROOTMOD=ext4 ROOTFS=ext4 ROOTDEV=/dev/sda2 ./kernel-xen.sh
+
+* Booting LILO with mbootpack has shown to be unreliable, and the easiest
+ method is to use EXTLINUX from Syslinux package. In this example, device
+ /dev/sda1 would have an ext2 filesystem mounted to /boot.
+
+ !!! Make sure to understand what are you doing at this point, you could
+ easily lose your data. Always create backups !!!
+
+ * To check and set the legacy BIOS bootable flag (bit 2 attribute):
+
+ sgdisk /dev/sda --attributes=1:show
+ sgdisk /dev/sda --attributes=1:set:2
- BOOTLOADER=grub ./kernel-xen.sh
+ * Install the binary:
-Slackware generic kernel requires initrd image, this script assumes root is on
-/dev/sda2 and filesystem is ext4, changes are made with:
+ mkdir /boot/extlinux
+ extlinux --install /boot/extlinux
+ dd if=/usr/share/syslinux/gptmbr.bin of=/dev/sda
+ cp -a /usr/share/syslinux/mboot.c32 /boot/extlinux/
- ROOTMOD=ext3 ROOTFS=ext3 ROOTDEV=/dev/sda5 ./kernel-xen.sh
+ * Edit the /boot/extlinux/extlinux.conf file:
-When using LILO bootloader, this is what the lilo.conf should have:
+ default XenLinux
+ prompt 1
+ timeout 50
+ label XenLinux
+ kernel mboot.c32
+ append /xen.gz --- /vmlinuz-xen root=/dev/sda2 nomodeset --- /initrd-xen.gz
- image = /boot/vmlinuz-xen
- root = /dev/sda2
- label = XenLinux
- append="dom0_mem=512M -- nomodeset"
- read-only
+* When using GRUB, /boot/grub/menu.lst should looks something like this:
-Everything on the left side of "--" is passed to Xen kernel, and what's on the
-right, goes to Linux kernel.
+ title Slackware XenLinux 15.0
+ 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
-When using GRUB, /boot/grub/menu.lst should have these:
+* Booting Xen on a native EFI system (non-BIOS legacy mode) is probably the
+ best option, but the only clean solution at this time requires a modified
+ binutils package. More experienced user can add "x86_64-pep" to the list of
+ enabled targets and build/replace binutils on their system. Subsequently,
+ building Xen will then also create a Xen EFI binary.
- title Slackware XenLinux 14.2
- 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
+ * To make things a bit easier, a copy of Xen EFI binary can be found here:
-Booting Xen on a native EFI system is also an option, but the only clean
-solution at this time requires a modified binutils package. More experienced
-user can add "x86_64-pep" to the list of enabled targets and build/replace
-binutils on their system. Subsequently, building Xen will now also create a
-Xen EFI binary.
+ http://slackware.hr/~mario/xen/xen-4.17.1.efi.gz
-To make things a bit easier, a copy of Xen EFI binary can be found here:
+ !!! Make sure to understand what are you doing at this point, you could
+ easily lose your data. Always create backups !!!
- http://slackware.hr/~mario/xen/xen-4.12.1.efi.gz
+ * In this example, partition /dev/sda1 with EF or EF00 type, and do:
-If an automatic boot to Xen kernel is desired, the binary should be renamed and
-copied to the following location: /boot/efi/EFI/BOOT/bootx64.efi
-Downloaded binary should be unpacked first, and the config file should be
-present in the same directory (same file name, minus the suffix).
-For example: "xen.cfg" or "bootx64.cfg", and its contents:
+ mkfs.vfat /dev/sda1
+ mkdir /boot/efi
+ mount /dev/sda1 /boot/efi
- [global]
- default=xen
+ * Copy/unpack EFI binary to /boot/efi/EFI/BOOT/bootx64.efi and edit
+ /boot/efi/EFI/BOOT/bootx64.cfg file to add these:
- [xen]
- options=dom0_mem=min:512M,max:512M,512M
- kernel=vmlinuz-xen root=/dev/sda2 ro console=tty0 nomodeset
- ramdisk=initrd-xen.gz
+ [global]
+ default=XenLinux
+ [XenLinux]
+ options=dom0_mem=min:512M,max:512M,512M
+ kernel=vmlinuz-xen root=/dev/sda2 ro console=tty0 nomodeset
+ ramdisk=initrd-xen.gz
-There are some other EFI bootloaders, for example ELILO comes with the support
-for VMM images, but their x86 support is lacking. GRUB2 apparently supports
-only the chainloader method; however, the stock Slackware version is too old
-for this task. rEFInd should work, but the Xen EFI method was satisfactory to
-the author :-)
+* Many more boot options are supported, this readme covers only some examples!
-Troubleshooting dom0 crashes, freezes, blank screen and such:
+* Troubleshooting dom0 crashes, freezes, blank screen at boot, etc:
- * 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
+ * Set an out-of-range device id, eg. fbcon=map:9 (Look for more in /proc/fb)
+ * Blacklist framebuffer devices (Look in dmesg/lsmod)
* Compile Linux kernel with CONFIG_FB=n
+ * Use a serial cable to see early boot messages
* Use another VGA card :-)