X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=273d4b34b394fc23df3eddceb7d04ab562f23f2d;hb=e60179bc2ac1d65bae2751e05f09862642452350;hp=5dc111c33bcfc8747be38f05b5c85fcdeb39045f;hpb=417568827a6a6eaf1df70d3f2dc0cd7d8a35bd7b;p=bootcd.git diff --git a/build.sh b/build.sh index 5dc111c..273d4b3 100755 --- a/build.sh +++ b/build.sh @@ -12,9 +12,16 @@ COMMAND=$(basename $0) DIRNAME=$(dirname $0) PATH=/sbin:/bin:/usr/sbin:/usr/bin -DEBUG_SYSTEMD="" -# temporary -DEBUG_SYSTEMD=true +# debugging flags +# keep KERNEL_DEBUG_ARGS void for production +KERNEL_DEBUG_ARGS="" +# and uncomment these to augment verbosity of boot phase +# not everything works or is helpful, but well +#KERNEL_DEBUG_ARGS="$KERNEL_DEBUG_ARGS debuginitrd showerr" +#KERNEL_DEBUG_ARGS="$KERNEL_DEBUG_ARGS earlyprintk=vga loglevel=6" +# for systemd - might slow down boot +#KERNEL_DEBUG_ARGS="$KERNEL_DEBUG_ARGS systemd.log_level=debug systemd.journald.forward_to_console=1" + # defaults DEFAULT_TYPES="usb iso" @@ -23,6 +30,9 @@ 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 @@ -230,14 +240,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 5.0 (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..." @@ -346,8 +365,9 @@ EOF # KERNEL_ARGS="$KERNEL_ARGS systemd.unit=pl_boot.target" # output more systemd-related messages on the console KERNEL_ARGS="$KERNEL_ARGS systemd.log_target=console" - # this slows down system init but is very helpful when e.g. trying to run on a new distro - [ -n "$DEBUG_SYSTEMD" ] && KERNEL_ARGS="$KERNEL_ARGS systemd.log_level=debug systemd.journald.forward_to_console=1" + # 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 @@ -387,7 +407,7 @@ TIMEOUT 40 EOF # Create ISO image - echo "* Creating ISO image" + echo "* Creating ISO image in $(pwd)" mkisofs -o "$iso" $MKISOFS_OPTS $ISOFS }