[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Netboot Xen images for amd64

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

 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),)
 	install -m 644 -D $< $@
 	update-manifest $@ $(MANIFEST-INITRD) $(UDEB_LISTS)
+$(INITRD): $(realpath $(dir $(INITRD))/$(SYMLINK_INITRD))
+	mkdir -p $(dir $(INITRD))
+	ln -s $(SYMLINK_INITRD) $@
+	update-manifest $@ $(MANIFEST-INITRD) $(UDEB_LISTS)
 	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),,')
 	@$(MAKE) $(STAMPS)tree-unpack-$(targetstring)-stamp $(TEMP_REAL_KERNEL)
 	install -m 644 -D $(TEMP_REAL_KERNEL) $@
 	update-manifest $@ $(MANIFEST-KERNEL)
+$(KERNEL): $(realpath $(dir $(KERNEL))/$(SYMLINK_KERNEL))
+	mkdir -p $(dir $(KERNEL))
+	ln -s $(SYMLINK_KERNEL) $@
+	update-manifest $@ $(MANIFEST-KERNEL)
 # bootable images
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
 # 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 @@
+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

Ian Campbell

Demographic polls show that you have lost credibility across the board.
Especially with those 14 year-old Valley girls.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: