tazlito rev 7

Support for generating/using lzma initramfs
author Christophe Lincoln <pankso@slitaz.org>
date Sat Dec 01 13:21:49 2007 +0100 (2007-12-01)
parents f5eeb22b2d56
children 5c1439df403d
files tazlito
line diff
     1.1 --- a/tazlito	Sat Dec 01 12:23:33 2007 +0100
     1.2 +++ b/tazlito	Sat Dec 01 13:21:49 2007 +0100
     1.3 @@ -19,6 +19,7 @@
     1.4  TMP_DIR=/tmp/tazlito-$$-$RANDOM
     1.5  TOP_DIR=`pwd`
     1.6  INITRAMFS=rootfs.gz
     1.7 +LZMA_INITRAMFS=rootfs.lz
     1.8  
     1.9  # Try to include config file, continue if command is gen-config or exit.
    1.10  # The main config used by default is in /etc/tazlito.
    1.11 @@ -129,10 +130,24 @@
    1.12  {
    1.13  	cd $ROOTFS
    1.14  	echo ""
    1.15 -	echo -n "Generating initramfs... "
    1.16 -	find . -print | cpio -o -H newc | gzip -9 > $DISTRO/$INITRAMFS
    1.17 -	cd $DISTRO
    1.18 -	cp $INITRAMFS $ROOTCD/boot
    1.19 +	# Use lzma if installed
    1.20 +	if [ -x /usr/bin/lzma ]; then
    1.21 +		echo -n "Generating cpio archive... "
    1.22 +		find . -print | cpio -o -H newc > ../rootfs.cpio
    1.23 +		cd $DISTRO
    1.24 +		lzma e $ROOTFS.cpio $LZMA_INITRAMFS
    1.25 +		rm rootfs.cpio
    1.26 +		cp $LZMA_INITRAMFS $ROOTCD/boot
    1.27 +		# Remove eventual gziped initramfs and sed isolinux.cfg for the path
    1.28 +		# to lzma rootfs ($LZMA_INITRAMFS)
    1.29 +		rm -f $ROOTCD/boot/$INITRAMFS
    1.30 +		sed -i s/$INITRAMFS/$LZMA_INITRAMFS/g $ROOTCD/boot/isolinux/isolinux.cfg
    1.31 +	else
    1.32 +		echo -n "Generating gziped initramfs... "
    1.33 +		find . -print | cpio -o -H newc | gzip -9 > $DISTRO/$INITRAMFS
    1.34 +		cd $DISTRO
    1.35 +		cp $INITRAMFS $ROOTCD/boot
    1.36 +	fi
    1.37  }
    1.38  
    1.39  # Print ISO and rootfs size.
    1.40 @@ -144,7 +159,11 @@
    1.41  	echo "Build date      : `date +%Y%m%d\ \at\ \%H:%M:%S`"
    1.42  	echo "Packages        : `ls -1 $ROOTFS/var/lib/tazpkg/installed | wc -l`"
    1.43  	echo "Rootfs size     : `du -sh $ROOTFS`"
    1.44 -	echo "Initramfs size  : `du -sh $INITRAMFS`"
    1.45 +	if [ -f $LZMA_INITRAMFS ]; then
    1.46 +		echo "Initramfs size  : `du -sh $LZMA_INITRAMFS`"
    1.47 +	else
    1.48 +		echo "Initramfs size  : `du -sh $INITRAMFS`"
    1.49 +	fi
    1.50  	echo "ISO image size  : `du -sh $ISO_NAME.iso`"
    1.51  	echo "================================================================================"
    1.52  	echo ""