Hi all, Since the Xen modules will be included in the next linux-kernel-di-amd64-2.6 upload I'd like to also add a netboot-xen target to the build. This is slightly unusual since, unlike i386, the standard kernel used on amd64 is Xen capable and therefore the regular images work just fine. However I would still like to maintain the netboot/xen subdirectory for consistency with i386 and also to have a sane place to put the xm-debian.cfg example configuration file. I would prefer to populate netboot/xen with symlinks rather than actual images which do nothing but duplicate the netboot/gtk images.
What are peoples feelings on this patch? I couldn't think of a cleaner
way to do this or a way to avoid touching the generic Makefile.
I think the ability to symlink the kernel or initrd will also be useful
to me when I start to consider cdrom-xen variants for both i386 and
amd64. i386 cannot share the kernel (needs 686-bigmem variant) but can
share the initrd with some small tweaks i.e. just by adding a small
subset of extra 686-bigmem udebs, not all udebs are needed due to the
constrained hardware in a Xen domU, possibly as little as just 320K for
the scsi-modules 686-bigmem will suffice. I think this is preferable to
duplicating the whole GTK >10M initrd.gz. Again the standard amd64
images should just work but I'd like to keep the xen variant for
consistency.
Ian.
---
installer/build/Makefile | 14 ++++++++++++++
installer/build/config/amd64.cfg | 2 +-
installer/build/config/amd64/netboot-xen.cfg | 13 +++++++++++++
3 files changed, 28 insertions(+), 1 deletions(-)
create mode 100644 installer/build/config/amd64/netboot-xen.cfg
diff --git a/installer/build/Makefile b/installer/build/Makefile
index b917b8f..0bf9b1e 100644
--- a/installer/build/Makefile
+++ b/installer/build/Makefile
@@ -617,20 +617,34 @@ $(TEMP_INITRD): $(STAMPS)tree-$(targetstring)-stamp
arch_tree
# Create the images for dest/. Those are the targets called from config.
+ifeq ($(SYMLINK_INITRD),)
$(INITRD): $(TEMP_INITRD)
install -m 644 -D $< $@
update-manifest $@ $(MANIFEST-INITRD) $(UDEB_LISTS)
+else
+$(INITRD): $(realpath $(dir $(INITRD))/$(SYMLINK_INITRD))
+ mkdir -p $(dir $(INITRD))
+ ln -s $(SYMLINK_INITRD) $@
+ update-manifest $@ $(MANIFEST-INITRD) $(UDEB_LISTS)
+endif
$(RAMDISK): $(TEMP_INITRD)
install -m 644 -D $< $@
update-manifest $@ $(MANIFEST-RAMDISK) $(UDEB_LISTS)
# raw kernel images
+ifeq ($(SYMLINK_KERNEL),)
$(KERNEL): TEMP_REAL_KERNEL = $(TEMP)/$(shell echo ./$@ |sed
's,$(SOME_DEST)/$(EXTRANAME),,')
$(KERNEL):
@$(MAKE) $(STAMPS)tree-unpack-$(targetstring)-stamp $(TEMP_REAL_KERNEL)
install -m 644 -D $(TEMP_REAL_KERNEL) $@
update-manifest $@ $(MANIFEST-KERNEL)
+else
+$(KERNEL): $(realpath $(dir $(KERNEL))/$(SYMLINK_KERNEL))
+ mkdir -p $(dir $(KERNEL))
+ ln -s $(SYMLINK_KERNEL) $@
+ update-manifest $@ $(MANIFEST-KERNEL)
+endif
# bootable images
$(BOOT): $(TEMP_BOOT)
diff --git a/installer/build/config/amd64.cfg b/installer/build/config/amd64.cfg
index 5d7e19d..5cab89c 100644
--- a/installer/build/config/amd64.cfg
+++ b/installer/build/config/amd64.cfg
@@ -1,4 +1,4 @@
-MEDIUM_SUPPORTED = cdrom netboot netboot-gtk hd-media
+MEDIUM_SUPPORTED = cdrom netboot netboot-gtk netboot-xen hd-media
MEDIUM_SUPPORTED_EXTRA = monolithic
# The version of the kernel to use.
diff --git a/installer/build/config/amd64/netboot-xen.cfg
b/installer/build/config/amd64/netboot-xen.cfg
new file mode 100644
index 0000000..71ba29a
--- /dev/null
+++ b/installer/build/config/amd64/netboot-xen.cfg
@@ -0,0 +1,13 @@
+TYPE=netboot/gtk
+
+EXTRANAME=netboot/xen/
+
+MANIFEST-KERNEL = "kernel image for installing under Xen"
+MANIFEST-INITRD = "initrd for installing under Xen"
+MANIFEST-XENCFG = "example Xen configuration"
+
+TARGET = $(KERNEL) $(INITRD) xen_config
+SYMLINK_KERNEL = ../gtk/debian-installer/amd64/linux
+SYMLINK_INITRD = ../gtk/debian-installer/amd64/initrd.gz
+
+EXTRATARGETS = build_netboot-gtk
--
1.6.2.2
--
Ian Campbell
Demographic polls show that you have lost credibility across the board.
Especially with those 14 year-old Valley girls.
signature.asc
Description: This is a digitally signed message part

