diff options
author | Roger Pau Monne <roger.pau@entel.upc.edu> | 2011-12-29 20:18:18 +0100 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2011-12-30 10:11:18 +0000 |
commit | 6be4450d14e8d6bab13f192a9908667937e3615d (patch) | |
tree | bfc01c4a3cf0b8a7e481a9bba58bd2180eace4f1 | |
parent | 5cc7d3aae80a62ab58e391c36f491d6c67300ae2 (diff) | |
download | alpine-iso-6be4450d14e8d6bab13f192a9908667937e3615d.tar.bz2 alpine-iso-6be4450d14e8d6bab13f192a9908667937e3615d.tar.xz |
alpine-iso: add support to create Xen Dom0 LiveCD/USB
A new profile has been added, called alpine-xen, that shoud be used
when trying to craft a Xen Dom0 LiveCD/USB.
Changes since v1:
* Removed dummy net setup, since xencommons doesn't need net to
start.
Please review and comment.
-rwxr-xr-x | Makefile | 64 | ||||
-rw-r--r-- | alpine-xen.conf.mk | 4 | ||||
-rw-r--r-- | alpine-xen.packages | 10 |
3 files changed, 77 insertions, 1 deletions
@@ -200,6 +200,44 @@ $(VSTEMPLATE): @cd $(VSTEMPLATE_DIR) && $(TAR) -jcf $@ * # +# apkovl rules +# + +ifdef BUILD_APKOVL +APKOVL_DEST := $(ISO_DIR)/$(BUILD_APKOVL).apkovl.tar.gz +APKOVL_DIR := $(DESTDIR)/apkovl_$(BUILD_APKOVL) +endif + +# Helper function to link a script to runlevel + +rc_add = \ + @mkdir -p "$(APKOVL_DIR)"/etc/runlevels/"$(2)"; \ + ln -sf /etc/init.d/"$(1)" "$(APKOVL_DIR)"/etc/runlevels/"$(2)"/"$(1)"; + +$(ISO_DIR)/xen.apkovl.tar.gz: + @rm -rf "$(APKOVL_DIR)" + @mkdir -p "$(APKOVL_DIR)" + @mkdir -p "$(APKOVL_DIR)"/etc/apk + @echo "xen udev" >> "$(APKOVL_DIR)"/etc/apk/world + @echo "xen_netback" >> "$(APKOVL_DIR)"/etc/modules + @echo "xen_blkback" >> "$(APKOVL_DIR)"/etc/modules + $(call rc_add,devfs,sysinit) + $(call rc_add,dmesg,sysinit) + $(call rc_add,hwclock,boot) + $(call rc_add,modules,boot) + $(call rc_add,sysctl,boot) + $(call rc_add,hostname,boot) + $(call rc_add,bootmisc,boot) + $(call rc_add,syslog,boot) + $(call rc_add,mount-ro,shutdown) + $(call rc_add,killprocs,shutdown) + $(call rc_add,savecache,shutdown) + $(call rc_add,udev,sysinit) + $(call rc_add,udev-postmount,default) + $(call rc_add,xencommons,default) + @cd $(APKOVL_DIR) && $(TAR) -zcf $@ * + @echo "==> apkovl: built $@" +# # ISO rules # @@ -223,24 +261,42 @@ $(ISOLINUX_CFG): @echo "$(SYSLINUX_SERIAL)" >$@ @echo "timeout 20" >>$@ @echo "prompt 1" >>$@ +ifeq ($(PROFILE), alpine-xen) + @echo "default xen-$(KERNEL_FLAVOR_DEFAULT)" >>$@ + @for flavor in $(KERNEL_FLAVOR); do \ + echo "label xen-$$flavor"; \ + echo " kernel /boot/mboot.c32"; \ + echo " append /boot/xen.gz --- /boot/$$flavor alpine_dev=cdrom:iso9660 modules=loop,squashfs,sd-mod,usb-storage,floppy,sr-mod modloop=/boot/$$flavor.modloop.squashfs $(BOOT_CONSOLE) --- /boot/$$flavor.gz"; \ + done >>$@ +else @echo "default $(KERNEL_FLAVOR_DEFAULT)" >>$@ @for flavor in $(KERNEL_FLAVOR); do \ echo "label $$flavor"; \ echo " kernel /boot/$$flavor"; \ echo " append initrd=/boot/$$flavor.gz alpine_dev=cdrom:iso9660 modules=loop,squashfs,sd-mod,usb-storage,floppy,sr-mod quiet $(BOOT_CONSOLE)"; \ done >>$@ +endif $(SYSLINUX_CFG): $(ALL_MODLOOP_DIRSTAMP) @echo "==> iso: configure syslinux" @echo "$(SYSLINUX_SERIAL)" >$@ @echo "timeout 20" >>$@ @echo "prompt 1" >>$@ +ifeq ($(PROFILE), alpine-xen) + @echo "default xen-$(KERNEL_FLAVOR_DEFAULT)" >>$@ + @for flavor in $(KERNEL_FLAVOR); do \ + echo "label xen-$$flavor"; \ + echo " kernel /boot/mboot.c32"; \ + echo " append /boot/xen.gz --- /boot/$$flavor alpine_dev=usbdisk:vfat modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/$$flavor.modloop.squashfs $(BOOT_CONSOLE) --- /boot/$$flavor.gz"; \ + done >>$@ +else @echo "default $(KERNEL_FLAVOR_DEFAULT)" >>$@ @for flavor in $(KERNEL_FLAVOR); do \ echo "label $$flavor"; \ echo " kernel /boot/$$flavor"; \ echo " append initrd=/boot/$$flavor.gz alpine_dev=usbdisk:vfat modules=loop,squashfs,sd-mod,usb-storage quiet $(BOOT_CONSOLE)"; \ done >>$@ +endif clean-syslinux: @rm -f $(SYSLINUX_CFG) $(ISOLINUX_CFG) $(ISOLINUX_BIN) @@ -266,6 +322,12 @@ $(ISO_KERNEL_STAMP): $(MODLOOP_DIRSTAMP) @mkdir -p $(dir $(ISO_KERNEL)) @apk fetch $(APK_OPTS) --stdout $(KERNEL_PKGNAME) \ | $(TAR) -C $(ISO_DIR) -xz boot +ifeq ($(PROFILE), alpine-xen) + @apk fetch $(APK_OPTS) --stdout xen \ + | $(TAR) -C $(ISO_DIR) -xz boot + @apk fetch $(APK_OPTS) --stdout syslinux \ + | $(TAR) -xz usr/share/syslinux/mboot.c32 -O > $(ISO_DIR)/boot/mboot.c32 +endif @rm -f $(ISO_KERNEL) @ln -s vmlinuz-$(MODLOOP_KERNEL_RELEASE) $(ISO_KERNEL) @rm -rf $(ISO_DIR)/.[A-Z]* $(ISO_DIR)/.[a-z]* $(ISO_DIR)/lib @@ -281,7 +343,7 @@ $(APKOVL_STAMP): fi @touch $@ -$(ISOFS_DIRSTAMP): $(ALL_MODLOOP) $(ALL_INITFS) $(ISOLINUX_CFG) $(ISOLINUX_BIN) $(ALL_ISO_KERNEL) $(ISO_REPOS_DIRSTAMP) $(APKOVL_STAMP) $(SYSLINUX_CFG) +$(ISOFS_DIRSTAMP): $(ALL_MODLOOP) $(ALL_INITFS) $(ISOLINUX_CFG) $(ISOLINUX_BIN) $(ALL_ISO_KERNEL) $(ISO_REPOS_DIRSTAMP) $(APKOVL_STAMP) $(SYSLINUX_CFG) $(APKOVL_DEST) @echo "$(ALPINE_NAME)-$(ALPINE_RELEASE) $(BUILD_DATE)" \ > $(ISO_DIR)/.alpine-release @touch $@ diff --git a/alpine-xen.conf.mk b/alpine-xen.conf.mk new file mode 100644 index 0000000..016db33 --- /dev/null +++ b/alpine-xen.conf.mk @@ -0,0 +1,4 @@ +ALPINE_NAME := alpine-xen +MODLOOP_EXTRA := +KERNEL_FLAVOR := grsec +BUILD_APKOVL := xen diff --git a/alpine-xen.packages b/alpine-xen.packages new file mode 100644 index 0000000..b1cbd42 --- /dev/null +++ b/alpine-xen.packages @@ -0,0 +1,10 @@ +bkeymaps +alpine-base +alpine-mirrors +wpa_supplicant +wireless-tools +openssl +tzdata +xen +udev +multipath-tools |