2007-09-23 08:04:46 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2010-09-02 11:12:37 +00:00
|
|
|
## live-build(7) - System Build Scripts
|
2014-02-08 15:47:02 -01:00
|
|
|
## Copyright (C) 2006-2014 Daniel Baumann <mail@daniel-baumann.ch>
|
2010-09-02 11:12:37 +00:00
|
|
|
##
|
2012-07-29 23:59:00 +00:00
|
|
|
## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
2010-09-02 11:12:37 +00:00
|
|
|
## This is free software, and you are welcome to redistribute it
|
|
|
|
## under certain conditions; see COPYING for details.
|
|
|
|
|
2007-09-23 08:04:46 +00:00
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Including common functions
|
2012-08-27 13:52:29 +00:00
|
|
|
[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
|
2007-09-23 08:04:46 +00:00
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Setting static variables
|
2009-01-15 01:37:42 -01:00
|
|
|
DESCRIPTION="$(Echo 'build netboot binary image')"
|
2007-09-23 08:04:48 +00:00
|
|
|
HELP=""
|
|
|
|
USAGE="${PROGRAM} [--force]"
|
|
|
|
|
|
|
|
Arguments "${@}"
|
|
|
|
|
2007-09-23 08:04:46 +00:00
|
|
|
# Reading configuration files
|
2008-10-28 14:26:17 -01:00
|
|
|
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
|
2007-09-23 08:04:46 +00:00
|
|
|
Set_defaults
|
|
|
|
|
2012-12-19 08:52:13 -01:00
|
|
|
if ! In_list netboot "${LIVE_IMAGE_TYPE}"
|
2007-09-23 08:05:11 +00:00
|
|
|
then
|
|
|
|
exit 0
|
|
|
|
fi
|
2007-09-23 08:04:49 +00:00
|
|
|
|
2011-01-01 22:36:20 -01:00
|
|
|
if [ "${LB_NET_TARBALL}" = "false" ]
|
2008-02-26 17:57:41 -01:00
|
|
|
then
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
Echo_message "Begin building binary netboot image..."
|
2007-09-23 08:04:48 +00:00
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Requiring stage file
|
2012-06-03 20:42:41 +00:00
|
|
|
Require_stagefile .build/config .build/bootstrap
|
2007-09-23 08:04:50 +00:00
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Checking stage file
|
2012-07-18 17:11:55 +00:00
|
|
|
Check_stagefile .build/binary_netboot
|
2007-09-23 08:04:48 +00:00
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Checking lock file
|
|
|
|
Check_lockfile .lock
|
2007-09-23 08:04:48 +00:00
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Creating lock file
|
|
|
|
Create_lockfile .lock
|
2007-09-23 08:04:46 +00:00
|
|
|
|
2012-12-19 09:16:57 -01:00
|
|
|
if [ "${LIVE_IMAGE_ARCHITECTURE}" = "sparc" ]
|
2008-06-20 00:38:21 +00:00
|
|
|
then
|
|
|
|
# Checking depends
|
|
|
|
Check_package chroot/usr/bin/elftoaout sparc-utils
|
|
|
|
|
|
|
|
# Restoring cache
|
2012-06-04 08:52:28 +00:00
|
|
|
Restore_cache cache/packages.binary
|
2008-06-20 00:38:21 +00:00
|
|
|
|
|
|
|
# Installing depends
|
|
|
|
Install_package
|
|
|
|
|
|
|
|
# Set target and source directories
|
|
|
|
DESTDIR="tftpboot"
|
2010-09-07 13:11:20 +00:00
|
|
|
case "${LB_INITRAMFS}" in
|
2008-06-20 00:38:21 +00:00
|
|
|
casper)
|
|
|
|
ORIGDIR="binary/casper"
|
|
|
|
;;
|
|
|
|
|
2011-01-02 08:32:58 -01:00
|
|
|
live-boot)
|
2008-06-20 00:38:21 +00:00
|
|
|
ORIGDIR="binary/live"
|
|
|
|
;;
|
2011-06-08 08:07:26 +00:00
|
|
|
|
|
|
|
*)
|
|
|
|
ORIGDIR="binary/boot"
|
|
|
|
;;
|
2008-06-20 00:38:21 +00:00
|
|
|
esac
|
|
|
|
|
|
|
|
# Find defaults
|
2010-09-07 13:11:20 +00:00
|
|
|
DEFAULT_FLAVOUR="$(echo ${LB_LINUX_FLAVOURS} | awk '{ print $1 }')"
|
2008-06-20 00:38:21 +00:00
|
|
|
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}
|
|
|
|
;;
|
|
|
|
*)
|
2008-08-11 20:28:54 +00:00
|
|
|
Echo_error "Invalid default kernel flavour for sparc \"%s\"" "${DEFAULT_FLAVOUR}"
|
2008-06-20 00:38:21 +00:00
|
|
|
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
|
2012-06-04 08:52:28 +00:00
|
|
|
Save_cache cache/packages.binary
|
2008-06-20 00:38:21 +00:00
|
|
|
|
|
|
|
# Removing depends
|
|
|
|
Remove_package
|
|
|
|
fi
|
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Remove old binary
|
2012-12-19 11:36:38 -01:00
|
|
|
rm -f ${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar ${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar.gz ${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar.bz2 ${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar.xz ${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar.xz
|
2007-09-23 08:04:49 +00:00
|
|
|
|
2007-09-23 08:05:11 +00:00
|
|
|
# Creating image file
|
2010-09-07 13:11:20 +00:00
|
|
|
ROOT_DIR=$(basename ${LB_NET_ROOT_PATH})
|
2011-01-01 22:36:20 -01:00
|
|
|
|
2007-10-31 12:59:01 -01:00
|
|
|
if [ "${ROOT_DIR}" = "chroot" ]
|
2007-09-23 08:05:11 +00:00
|
|
|
then
|
|
|
|
mv chroot chroot.tmp
|
|
|
|
fi
|
2007-09-23 08:04:47 +00:00
|
|
|
|
2007-10-31 12:59:01 -01:00
|
|
|
if [ "${ROOT_DIR}" != "binary" ]
|
|
|
|
then
|
|
|
|
mv binary ${ROOT_DIR}
|
|
|
|
fi
|
2007-09-23 08:04:47 +00:00
|
|
|
|
2009-02-14 15:40:43 -01:00
|
|
|
mkdir binary.tmp
|
|
|
|
mv ${ROOT_DIR} tftpboot binary.tmp
|
|
|
|
cd binary.tmp
|
2008-02-26 17:57:41 -01:00
|
|
|
|
2012-04-04 14:45:10 +00:00
|
|
|
# Moving kernel and initrd image arround
|
|
|
|
mkdir tftpboot/live
|
|
|
|
mv */live/vmlinuz* */live/initrd* tftpboot/live
|
|
|
|
|
2012-12-19 11:36:38 -01:00
|
|
|
tar cf ../${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar *
|
2011-01-01 22:36:20 -01:00
|
|
|
|
2011-01-07 21:39:41 -01:00
|
|
|
case "${LB_COMPRESSION}" in
|
2008-02-26 17:57:41 -01:00
|
|
|
bzip2)
|
2012-12-19 11:36:38 -01:00
|
|
|
bzip2 ${BZIP2_OPTIONS} ../${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar
|
2008-02-26 17:57:41 -01:00
|
|
|
;;
|
|
|
|
|
|
|
|
gzip)
|
2012-12-19 11:36:38 -01:00
|
|
|
gzip ${GZIP_OPTIONS} ../${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar
|
2008-02-26 17:57:41 -01:00
|
|
|
;;
|
|
|
|
|
2011-01-01 22:36:20 -01:00
|
|
|
lzip)
|
2012-12-19 11:36:38 -01:00
|
|
|
lzip ${LZIP_OPTIONS} ../${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar
|
2011-01-01 22:36:20 -01:00
|
|
|
;;
|
|
|
|
|
2012-07-18 17:44:00 +00:00
|
|
|
xz)
|
2012-12-19 11:36:38 -01:00
|
|
|
xz ${XZ_OPTIONS} ../${LIVE_IMAGE_NAME}-${LIVE_IMAGE_ARCHITECTURE}.netboot.tar
|
2012-07-18 17:44:00 +00:00
|
|
|
;;
|
|
|
|
|
2011-01-01 22:36:20 -01:00
|
|
|
none)
|
2008-02-26 17:57:41 -01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2009-02-14 15:40:43 -01:00
|
|
|
mv * ../
|
2007-09-23 08:05:11 +00:00
|
|
|
cd "${OLDPWD}"
|
2009-02-14 15:40:43 -01:00
|
|
|
rmdir binary.tmp
|
2007-09-23 08:04:46 +00:00
|
|
|
|
2007-10-31 12:59:01 -01:00
|
|
|
if [ "${ROOT_DIR}" != "binary" ]
|
|
|
|
then
|
|
|
|
mv ${ROOT_DIR} binary
|
|
|
|
fi
|
2007-09-23 08:04:49 +00:00
|
|
|
|
2007-10-31 12:59:01 -01:00
|
|
|
if [ "${ROOT_DIR}" = "chroot" ]
|
2007-09-23 08:05:11 +00:00
|
|
|
then
|
|
|
|
mv chroot.tmp chroot
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Creating stage file
|
2012-07-18 17:11:55 +00:00
|
|
|
Create_stagefile .build/binary_netboot
|