X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from mail-ee0-f54.google.com (mail-ee0-f54.google.com [74.125.83.54]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id D08F1DC148E for ; Thu, 29 Dec 2011 19:18:30 +0000 (UTC) Received: by eekc50 with SMTP id c50so15940389eek.13 for ; Thu, 29 Dec 2011 11:18:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer; bh=3FOd0YSX5BWOaCWSEoKWBFP0T6ixpMKUlAhuS+yGzAQ=; b=Quq6hZWVDsdwKmpz4cYrcEwj6RjoIR+ZF6IbB0x1FWCRj2UdJIAueEKoW8XHnz5ynR HMjUfsTIzFD6wBfuVeu4FLpb/e1jNoImWX2E8Lf/ot5D9ZsnZsVM8kiti3ulZDJ9BBv2 KCepbIPobMpL5FfOyScVZmES6zrkBQ76kKODo= Received: by 10.213.15.78 with SMTP id j14mr7476493eba.31.1325186308348; Thu, 29 Dec 2011 11:18:28 -0800 (PST) Received: from localhost.localdomain (81.184.59.225.dyn.user.ono.com. [81.184.59.225]) by mx.google.com with ESMTPS id z43sm137782834eef.7.2011.12.29.11.18.25 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 29 Dec 2011 11:18:26 -0800 (PST) Sender: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= From: Roger Pau Monne To: alpine-devel@lists.alpinelinux.org Cc: Roger Pau Monne Subject: [alpine-devel] [PATCH v2] alpine-iso: add support to create Xen Dom0 LiveCD/USB Date: Thu, 29 Dec 2011 20:18:18 +0100 Message-Id: <1325186298-1945-1-git-send-email-roger.pau@entel.upc.edu> X-Mailer: git-send-email 1.7.7.1 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: 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. --- Makefile | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++- alpine-xen.conf.mk | 4 +++ alpine-xen.packages | 10 ++++++++ 3 files changed, 77 insertions(+), 1 deletions(-) create mode 100644 alpine-xen.conf.mk create mode 100644 alpine-xen.packages diff --git a/Makefile b/Makefile index 7fa36b2..65a7dd0 100755 --- a/Makefile +++ b/Makefile @@ -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 -- 1.7.7.1 --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---