Package: live-build Version: 3.0~a18-1 Severity: wishlist Tags: patch User: [email protected] Usertags: origin-ubuntu ubuntu-patch oneiric
livecd-rootfs has a facility to create an empty swap file on ext2/ext3 images, which Ubuntu's boot scripts then deal with using or deleting as appropriate at the first boot. Apparently this cuts three minutes off the boot time of our preinstalled (jasper-based) images on ARM. This seems like a sufficiently useful facility (at least relative to ext2/ext3 images) that it would be nice to have it as options rather than hooks. Patch attached. Thanks, -- Colin Watson [[email protected]]
>From 5ae2040d7c8470d7488993e0069d827e56aa8be5 Mon Sep 17 00:00:00 2001 From: Colin Watson <[email protected]> Date: Wed, 8 Jun 2011 11:30:29 +0100 Subject: [PATCH] Add --swap-file-path and --swap-file-size options. --- functions/defaults.sh | 3 +++ manpages/en/lb_config.1 | 4 ++++ scripts/build/lb_chroot_hacks | 5 +++++ scripts/build/lb_config | 22 +++++++++++++++++++++- 4 files changed, 33 insertions(+), 1 deletions(-) diff --git a/functions/defaults.sh b/functions/defaults.sh index e26f1ac..7c9d288 100755 --- a/functions/defaults.sh +++ b/functions/defaults.sh @@ -1102,6 +1102,9 @@ Set_defaults () ;; esac + # Setting swap file + LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE:-512}" + ## config/source # Setting source option diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1 index f1204b0..9e2f858 100644 --- a/manpages/en/lb_config.1 +++ b/manpages/en/lb_config.1 @@ -474,6 +474,10 @@ defines if the security repositories specified in the security mirror options sh defines if a corresponding source image to the binary image should be build. By default this is false because most people do not require this and would require to download quite a few source packages. However, once you start distributing your live image, you should make sure you build it with a source image alongside. .IP "\-s|\fB\-\-source\-images\fR iso|net|tar|usb\-hdd" 4 defines the image type for the source image. Default is tar. +.IP "\fB\-\-swap\-file\-path\fR \fIPATH\fR" 4 +defines the path to a swap file to create in the binary image. Default is not to create a swap file. +.IP "\fB\-\-swap\-file\-size\fR \fIMB\fR" 4 +defines what size in megabytes the swap file should be, if one is to be created. Default is 512MB. .IP "\fB\-\-syslinux\-splash\fR \fIFILE\fR" 4 defines the file of the syslinux splash graphic that should be used instead of the default one. .IP "\fB\-\-syslinux\-timeout\fR \fISECONDS\fR" 4 diff --git a/scripts/build/lb_chroot_hacks b/scripts/build/lb_chroot_hacks index bbb39ce..f9e11dd 100755 --- a/scripts/build/lb_chroot_hacks +++ b/scripts/build/lb_chroot_hacks @@ -314,6 +314,11 @@ then ln -s /proc/mounts chroot/etc/mtab fi +if [ "${LB_SWAP_FILE_PATH}" ]; then + dd if=/dev/zero of="chroot/${LB_SWAP_FILE_PATH}" bs=1024k count="${LB_SWAP_FILE_SIZE}" + mkswap "chroot/${LB_SWAP_FILE_PATH}" +fi + # Show popular warnings if [ -e chroot/etc/init.d/resolvconf ] then diff --git a/scripts/build/lb_config b/scripts/build/lb_config index 2f49557..f129255 100755 --- a/scripts/build/lb_config +++ b/scripts/build/lb_config @@ -135,6 +135,8 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\ \t [--security true|false]\n\ \t [--source true|false]\n\ \t [-s|--source-images iso|net|tar|usb-hdd]\n\ +\t [--swap-file-path PATH]\n\ +\t [--swap-file-size MB]\n\ \t [--syslinux-theme THEME_SUFFIX]\n\ \t [--tasksel apt|aptitude|tasksel]\n\ \t [--tasks TASK|\"TASKS\"]\n\ @@ -166,7 +168,7 @@ Local_arguments () grub-splash:,hostname:,isohybrid-options:,iso-application:,iso-preparer:,iso-publisher:, iso-volume:,jffs2-eraseblock:,memtest:,net-root-filesystem:,net-root-mountoptions:, net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:, - net-cow-server:,net-tarball:,syslinux-theme:, + net-cow-server:,net-tarball:,swap-file-path:,swap-file-size:,syslinux-theme:, username:,win32-loader:,source:,source-images:,breakpoints,conffile:,debug,force, help,ignore-system-defaults,quiet,usage,verbose,version" # Remove spaces added by indentation @@ -754,6 +756,16 @@ Local_arguments () shift 2 ;; + --swap-file-path) + LB_SWAP_FILE_PATH="${2}" + shift 2 + ;; + + --swap-file-size) + LB_SWAP_FILE_SIZE="${2}" + shift 2 + ;; + --syslinux-theme) LB_SYSLINUX_THEME="${2}" shift 2 @@ -1375,6 +1387,14 @@ LB_NET_COW_SERVER="${LB_NET_COW_SERVER}" # (Default: ${LB_NET_TARBALL}) LB_NET_TARBALL="${LB_NET_TARBALL}" +# \$LB_SWAP_FILE_PATH: set swap file path +# (Default: ${LB_SWAP_FILE_PATH}) +LB_SWAP_FILE_PATH="${LB_SWAP_FILE_PATH}" + +# \$LB_SWAP_FILE_SIZE: set swap file size +# (Default: ${LB_SWAP_FILE_SIZE}) +LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE}" + # \$LB_SYSLINUX_THEME: set syslinux theme package # (Default: ${LB_SYSLINUX_THEME}) LB_SYSLINUX_THEME="${LB_SYSLINUX_THEME}" -- 1.7.5.3
