X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=eb2a79c57eaf63247c1471f852c63a0e2a632f96;hb=bfa859690146f4980f23fd87272665ceea9bff92;hp=78958075e74fc1bad9eb3126c693de7a91dce23e;hpb=075c3c0bd5250b88947dbcccee078f1a0703ee58;p=bootcd.git diff --git a/build.sh b/build.sh index 7895807..eb2a79c 100755 --- a/build.sh +++ b/build.sh @@ -7,11 +7,27 @@ # Mark Huang # Copyright (C) 2004-2007 The Trustees of Princeton University # +# Jan 2015 - f21 comes with isolinux 6.03 (was 4.05 in f20) +# http://www.syslinux.org/wiki/index.php/ISOLINUX COMMAND=$(basename $0) DIRNAME=$(dirname $0) PATH=/sbin:/bin:/usr/sbin:/usr/bin +# debugging flags +# keep KERNEL_DEBUG_ARGS void for production +KERNEL_DEBUG_ARGS="" +# add more flags here for debugging +# KERNEL_DEBUG_ARGS="$KERNEL_DEBUG_ARGS some_other_kernel_arg" +# see also +# (*) GetBootMedium that has some provisions for common +# kargs, like e.g. for removing the hangcheck feature, +# or for turning on debug messages for systemd +# these can be turned on with tags on the node +# (*) tests default config, that uses this feature so +# the tests can benefit these features, without deploying +# them by default in production + # defaults DEFAULT_TYPES="usb iso" # Leave 4 MB of free space @@ -19,6 +35,10 @@ GRAPHIC_CONSOLE="graphic" SERIAL_CONSOLE="ttyS0:115200:n:8" CONSOLE_INFO=$GRAPHIC_CONSOLE MKISOFS_OPTS="-R -J -r -f -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table" +# isolinux-debug.bin is supposedly helpful as well if available, +# when things don't work as expected +#MKISOFS_OPTS="-R -J -r -f -b isolinux-debug.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table" + FREE_SPACE=4096 # command-line settable args @@ -226,14 +246,23 @@ function build_overlay () { BUILDTMP=$(mktemp -d ${BUILDTMP}/bootcd.XXXXXX) push_cleanup rm -fr "${BUILDTMP}" - mkdir "${BUILDTMP}/isofs" + + # initialize ISOFS + ISOFS="${BUILDTMP}/isofs" + mkdir -p "$ISOFS" for i in "$ISOREF"/isofs/{bootcd.img,kernel}; do - ln -s "$i" "${BUILDTMP}/isofs" + ln -s "$i" "$ISOFS" + done + # use new location as of fedora 12 + # used to be in /usr/lib/syslinux/isolinux.bin + # removed backward compat in jan. 2015 + # as of syslinux 6.05 (fedora 21) ldlinux.c32 is required by isolinux.bin + # the debug version can come in handy at times, and is 40k as well + isolinuxdir="/usr/share/syslinux" + isolinuxfiles="isolinux.bin ldlinux.c32 isolinux-debug.bin memdisk" + for isolinuxfile in $isolinuxfiles; do + [ -f $isolinuxdir/$isolinuxfile ] && cp $isolinuxdir/$isolinuxfile "${BUILDTMP}/isofs" done - # the syslinux that comes with f12 has this file in a new location - cp "/usr/lib/syslinux/isolinux.bin" "${BUILDTMP}/isofs" \ - || cp "/usr/share/syslinux/isolinux.bin" "${BUILDTMP}/isofs" - ISOFS="${BUILDTMP}/isofs" # Root of the ISO and USB images echo "* Populating root filesystem..." @@ -337,11 +366,11 @@ EOF KERNEL_ARGS="$KERNEL_ARGS biosdevname=0" # making sure selinux is turned off - somehow this is needed with lxc/f14 KERNEL_ARGS="$KERNEL_ARGS selinux=0" -# cannot use this mecahnism to set systemd default target because this applies to kexec boots as well -# # set default target for systemd -# KERNEL_ARGS="$KERNEL_ARGS systemd.unit=pl_boot.target" - # output more systemd-related messages on the console - KERNEL_ARGS="$KERNEL_ARGS systemd.log_level=debug systemd.log_target=console" + # output systemd-related messages on the serial line so it gets with log.txt + KERNEL_ARGS="$KERNEL_ARGS systemd.log_target=console console=ttyS0,115200" + # add any debug flag if any (defined in the header of this script) + KERNEL_ARGS="$KERNEL_ARGS $KERNEL_DEBUG_ARGS" + # propagate kernel args for later boot stages [ -n "$KERNEL_ARGS" ] && echo "$KERNEL_ARGS" > $OVERLAY/kargs.txt # Pack overlay files into a compressed archive @@ -373,15 +402,17 @@ function build_iso() { # Write isolinux configuration cat >$ISOFS/isolinux.cfg <$tmp </dev/null || : mcopy -i "$usb" "$tmp" z:/syslinux.cfg @@ -466,11 +499,13 @@ EOF tmp="${BUILDTMP}/syslinux.cfg" cat >$tmp </dev/null || : mcopy -i "$usb" "$tmp" ::/syslinux.cfg @@ -628,11 +663,13 @@ function build_iso_cramfs() { (cd $ISOFS && find . | grep -v "\.img$" | cpio -p -d -u $tmp/) cat >$tmp/isolinux.cfg <$tmp <