diff options
Diffstat (limited to 'helpers/lh_binary_net')
-rwxr-xr-x | helpers/lh_binary_net | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/helpers/lh_binary_net b/helpers/lh_binary_net index 9e9c91bdc..43c1dc669 100755 --- a/helpers/lh_binary_net +++ b/helpers/lh_binary_net @@ -52,6 +52,72 @@ Check_lockfile .lock # Creating lock file Create_lockfile .lock +if [ "${LH_ARCHITECTURE}" = "sparc" ] +then + # Checking depends + Check_package chroot/usr/bin/elftoaout sparc-utils + + # Restoring cache + Restore_cache cache/packages_binary + + # Installing depends + Install_package + + # Set target and source directories + DESTDIR="tftpboot" + case "${LH_INITRAMFS}" in + casper) + ORIGDIR="binary/casper" + ;; + + live-initramfs) + ORIGDIR="binary/live" + ;; + esac + + # Find defaults + DEFAULT_FLAVOUR="$(echo ${LH_LINUX_FLAVOURS} | awk '{ print $1 }')" + DEFAULT_KERNEL="$(basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR})" + DEFAULT_INITRD="initrd.img-$(echo ${DEFAULT_KERNEL} | sed -e 's|vmlinuz-||')" + DEFAULT_MAP="$(echo chroot/boot/System.map-*${DEFAULT_FLAVOUR})" + + gzip -cd ${ORIGDIR}/${DEFAULT_KERNEL} > kernel.tmp + + mkdir -p ${DESTDIR} + rm -f ${DESTDIR}/boot.img + elftoaout -o ${DESTDIR}/boot.img kernel.tmp + + case "${DEFAULT_FLAVOUR}" in + sparc32) + piggyback ${DESTDIR}/boot.img ${DEFAULT_MAP} ${ORIGDIR}/${DEFAULT_INITRD} + ;; + sparc64) + piggyback64 ${DESTDIR}/boot.img ${DEFAULT_MAP} ${ORIGDIR}/${DEFAULT_INITRD} + ;; + *) + Echo_error "Invalid default kernel flavour for sparc \"${DEFAULT_FLAVOUR}\"" + exit 1; + ;; + esac + + # Pad boot.img + REMAINDER=$((( 4 - $(stat -c %s ${DESTDIR}/boot.img) % 4 ) % 4)) + dd if=/dev/zero bs=1 count=${REMAINDER} >> ${DESTDIR}/boot.img + + # No need for kernel and initrd images in the binary + rm -f ${ORIGDIR}/vmlinuz-* + rm -f ${ORIGDIR}/initrd.img-* + + # Clean temporaries + rm -f kernel.tmp + + # Saving cache + Save_cache cache/packages_binary + + # Removing depends + Remove_package +fi + # Remove old binary rm -f binary-net.tar.bz2 rm -f binary-net.tar.gz |