From 730cf9e4ebd6d839c1b550803ee91454cc9c61c8 Mon Sep 17 00:00:00 2001 From: Chris Lamb Date: Fri, 20 Jun 2008 01:38:21 +0100 Subject: Add support for generation of sparc netboot images. --- helpers/lh_binary_net | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ helpers/lh_binary_silo | 4 +-- 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/helpers/lh_binary_net b/helpers/lh_binary_net index 9e9c91b..43c1dc6 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 diff --git a/helpers/lh_binary_silo b/helpers/lh_binary_silo index 22900f8..8bddb2b 100755 --- a/helpers/lh_binary_silo +++ b/helpers/lh_binary_silo @@ -39,8 +39,8 @@ case "${LH_BINARY_IMAGES}" in ;; net) - Echo_error "not yet supported, aborting (FIXME)." - exit 1 + # silo not required for sparc netbooting + exit 0 ;; esac -- cgit v1.0