diff options
-rwxr-xr-x | config/hooks/kernel-image.sh.binary | 15 | ||||
-rwxr-xr-x | config/hooks/kernel-image.sh.chroot | 5 |
2 files changed, 20 insertions, 0 deletions
diff --git a/config/hooks/kernel-image.sh.binary b/config/hooks/kernel-image.sh.binary index 2b4d094..65ed75a 100755 --- a/config/hooks/kernel-image.sh.binary +++ b/config/hooks/kernel-image.sh.binary @@ -2,5 +2,20 @@ set -e +# This script is necessary for squashfs (or any not-plainroot) builds, where +# the usual /live images end up inside the filesystem. + +# In these cases the kernel ships in three places, which is inefficient: +# enclosing binary /live (mangled) +# rootfs /live (mangled) +# rootfs /boot (original) + echo "(re)Copying in kernel images..." cp -a chroot/live/uInitrd chroot/live/uImage chroot/live/dtb binary/live/ + +# This reduces final image size significantly; original raw kernel files are +# still duplicated in /boot. +# Don't stop on errors, because this script may have already been run. +echo "Removing redundant kernel images..." +rm binary/live/vmlinuz-* || true +rm binary/live/initrd.img-* || true diff --git a/config/hooks/kernel-image.sh.chroot b/config/hooks/kernel-image.sh.chroot index 05d287c..84de114 100755 --- a/config/hooks/kernel-image.sh.chroot +++ b/config/hooks/kernel-image.sh.chroot @@ -6,6 +6,9 @@ set -e # generates uImage and uInitrd style files (for use with u-boot, as opposed to # syslinux-style images), and moves those files to /live. +# See also kernel-image.sh.binary, which recopies files at the final binary +# assembly stage. + KERNELVERSION=`ls /boot/vmlinuz-* | sed -e "s/\/boot\/vmlinuz-//"` echo "Mangling kernel..." @@ -31,6 +34,8 @@ rm -rf /tmp/initrd-repack -d initrd.img uInitrd ) rm /boot/initrd.img +# Useful to to this here because sometimes /live doesn't get created +# otherwise... echo "Creating /live and copying in boot images..." mkdir -p /live mv /boot/uInitrd /boot/uImage /boot/dtb /live |