Hi, In the Squeeze release we added support for Xen PV installation from certain ISO images which have the Xen variant enabled in Debian CD (the multiarch x86 ISOs) which includes a suitable installer image as well as the kernel binaries (686-bigmem flavour on i386).
Since then the kernel has grown additional functionality which allows the PV drivers to be used for disk and network in an HVM (fully virtualised) guest, in Xen-land we call this PVHVM. For various reasons this PVHVM support is contingent on Xen PV support also being enabled in the kernel and hence it is limited to the 686-bigmem flavour on i386 as well. Long term we hope to address this but I don't think it will happen too soon... The following patches to d-i and debian-cd add a menu item to the isolinux menu for images with the Xen variant enabled e.g. it simply creates an entry for images when the appropriate installer + kernel is already present anyway. I think manually duplicating the entire non-Xen menu hierarchy by hand would be a terrible idea, and although I think I could probably make something work automatically by processing the existing cfg files (e.g. with sed or something) I suspect the result would be rather fragile, so I've just implemented the basic install menu item for 32 and 64 bit. Anyone got any cunning ideas on how to do this better? Any opinions on where to put the Xen toplevel menu etc? I put it in the first screen but I could see an argument for putting it under advanced for example. Ian. PS: Is there some trick to quickly testing the isolinux menus? I've been doing: #!/bin/sh set -ex export PATH=util:${PATH}:/usr/sbin:/sbin rm -rf tmp/cdrom_isolinux/cd_info tmp/cdrom_gtk/cd_info make SUBARCH= MEDIUM=cdrom FLAVOUR=isolinux dest/cdrom/debian-cd_info.tar.gz ARCH=`dpkg --print-architecture` cp -v dest/cdrom/debian-cd_info.tar.gz ~/development/debian/debian-installer/dest/${ARCH}/cdrom/debian-cd_info.tar.gz for both amd64 and i386 and then rebuilding a BC image against that installer, which takes several minutes and is a bit fiddly. -- Ian Campbell Immature artists imitate, mature artists steal. -- Lionel Trilling
diff --git a/tools/boot/wheezy/boot-x86 b/tools/boot/wheezy/boot-x86 index a7ea2c2..547ad97 100644 --- a/tools/boot/wheezy/boot-x86 +++ b/tools/boot/wheezy/boot-x86 @@ -252,6 +252,9 @@ if variant_enabled "xen" ; then extra_image xen/vmlinuz "../vmlinuz ../gtk/vmlinuz" extra_image xen/initrd.gz "../initrd.gz ../gtk/initrd.gz" extra_image xen/xm-debian.cfg +else + # Remove Xen configuration is Xen is not enabled + rm -f boot$N/isolinux/*xen.cfg fi # Modify win32-loader.ini for the "current" arch
diff --git a/build/boot/x86/amdtxt.cfg b/build/boot/x86/amdtxt.cfg index e347679..afd9e48 100644 --- a/build/boot/x86/amdtxt.cfg +++ b/build/boot/x86/amdtxt.cfg @@ -1,6 +1,4 @@ -default64 amd64-install label amd64-install menu label ^64 bit install - menu default64 kernel ${AMD_KERNEL} append desktop=%desktop% ${VIDEO_MODE} initrd=${AMD_INITRD} -- quiet ${CONSOLE} diff --git a/build/boot/x86/amdtxtxen.cfg b/build/boot/x86/amdtxtxen.cfg new file mode 100644 index 0000000..25a091f --- /dev/null +++ b/build/boot/x86/amdtxtxen.cfg @@ -0,0 +1,4 @@ +label amd64-install-xen + menu label ^64 bit Xen PVHVM install + kernel ${AMD_KERNEL_XEN} + append desktop=%desktop% ${VIDEO_MODE} initrd=${AMD_INITRD_XEN} -- quiet ${CONSOLE} diff --git a/build/boot/x86/menu.cfg b/build/boot/x86/menu.cfg index f1be77f..e030043 100644 --- a/build/boot/x86/menu.cfg +++ b/build/boot/x86/menu.cfg @@ -7,6 +7,7 @@ include ${SYSDIR}txt.cfg include ${SYSDIR}amdtxt.cfg include ${SYSDIR}gtk.cfg include ${SYSDIR}amdgtk.cfg +include ${SYSDIR}menuxen.cfg menu begin advanced menu title Advanced options include ${SYSDIR}stdmenu.cfg diff --git a/build/boot/x86/menuxen.cfg b/build/boot/x86/menuxen.cfg new file mode 100644 index 0000000..6ab4000 --- /dev/null +++ b/build/boot/x86/menuxen.cfg @@ -0,0 +1,10 @@ +menu begin xen + menu title Xen PVHVM options + include ${SYSDIR}stdmenu.cfg + label mainmenu + menu label ^Back.. + menu exit + include ${SYSDIR}txtxen.cfg + # Truncated due to 8.3... + include ${SYSDIR}amdtxtxe.cfg +menu end diff --git a/build/boot/x86/txtxen.cfg b/build/boot/x86/txtxen.cfg new file mode 100644 index 0000000..5ae0708 --- /dev/null +++ b/build/boot/x86/txtxen.cfg @@ -0,0 +1,4 @@ +label install-xen + menu label ^Xen PVHVM install + kernel ${KERNEL_XEN} + append desktop=%desktop% ${VIDEO_MODE} initrd=${INITRD_XEN} -- quiet ${CONSOLE} diff --git a/build/config/x86.cfg b/build/config/x86.cfg index c95cd30..e231a28 100644 --- a/build/config/x86.cfg +++ b/build/config/x86.cfg @@ -178,11 +178,15 @@ arch_cd_info_dir: x86_syslinux DEBIAN_VERSION "$(DEBIAN_VERSION)" \ BUILD_DATE "$(BUILD_DATE)" \ KERNEL /%install%/vmlinuz \ + KERNEL_XEN /%install%/xen/vmlinuz \ INITRD /%install%/initrd.gz \ INITRD_GTK /%install%/gtk/initrd.gz \ + INITRD_XEN /%install%/xen/initrd.gz \ AMD_KERNEL /%install-amd%/vmlinuz \ + AMD_KERNEL_XEN /%install-amd%/xen/vmlinuz \ AMD_INITRD /%install-amd%/initrd.gz \ AMD_INITRD_GTK /%install-amd%/gtk/initrd.gz \ + AMD_INITRD_XEN /%install-amd%/xen/initrd.gz \ VIDEO_MODE $(VIDEO_MODE) \ VIDEO_MODE_GTK $(VIDEO_MODE_GTK) \ BEEP "$$beep" \
signature.asc
Description: This is a digitally signed message part