DRY_RUN=""
OUTPUT_NAME=""
TYPES=""
+KARGS_STR=""
# various globals
BUILDTMP=""
console_baud=""
console_spec=""
console_serial_line=""
+kernel_args=""
#################### compute all supported types
. /etc/planetlab/plc_config
fi
- # From within a myplc chroot /usr/tmp is too small
- # to build all possible images, whereas /data is part of the host
- # filesystem and usually has sufficient space. What we
- # should do is check whether the expected amount of space
- # is available.
- BUILDTMP=/usr/tmp
- if [ -d /data/tmp ] ; then
- isreadonly=$(mktemp /data/tmp/isreadonly.XXXXXX || /bin/true)
- if [ -n "$isreadonly" ] ; then
- rm -f "$isreadonly"
- BUILDTMP=/data/tmp
- fi
- fi
+ # use /var/tmp that should be large enough on both chroot- or vserver-based myplc
+ BUILDTMP=/var/tmp
FULL_VERSION_STRING="${PLC_NAME} BootCD ${BOOTCD_VERSION}"
echo " -o output-name The full name of the generated file"
echo " -C custom-dir Custom directory"
echo " -n Dry run - mostly for debug/test purposes"
+ echo " -k Add additional parameters to the kargs.txt file"
echo " -h This message"
echo "All known types: $ALL_TYPES"
exit 1
# init
TYPES=""
# Get options
- while getopts "f:t:as:SO:o:C:nh" opt ; do
+ while getopts "f:t:as:SO:o:C:k:nh" opt ; do
case $opt in
f) NODE_CONFIGURATION_FILE=$OPTARG ;;
t) TYPES="$TYPES $OPTARG" ;;
O) OUTPUT_BASE="$OPTARG" ;;
o) OUTPUT_NAME="$OPTARG" ;;
C) CUSTOM_DIR="$OPTARG" ;;
+ k) KARGS_STR="$KARGS_STR $OPTARG" ;;
n) DRY_RUN=true ;;
h|*) usage ;;
esac
if [ -f "$NODE_CONFIGURATION_FILE" ] ; then
echo "* Installing node configuration file $NODE_CONFIGURATION_FILE -> /usr/boot/plnode.txt of the bootcd image"
install -D -m 644 $NODE_CONFIGURATION_FILE $OVERLAY/usr/boot/plnode.txt
+ NODE_ID=$(source $NODE_CONFIGURATION_FILE; echo $NODE_ID)
+ echo "* Building network configuration for $NODE_ID"
+ plnet -- --root $OVERLAY --files-only --program BootCD $NODE_ID
fi
if [ -n "$IS_SERIAL" ] ; then
- echo "${console_spec}" > $OVERLAY/kargs.txt
+ KARGS_STR="$KARGS_STR ${console_spec}"
+ fi
+
+ if [ -n "$KARGS_STR" ] ; then
+ echo "$KARGS_STR" > $OVERLAY/kargs.txt
+ kernel_args=$KARGS_STR
fi
# Pack overlay files into a compressed archive
cat >$ISOFS/isolinux.cfg <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${console_spec}
+APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${kernel_args}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
# Create ISO image
echo "* Creating ISO image"
- mkisofs -o "$iso" \
- $MKISOFS_OPTS \
- $ISOFS
+ mkisofs -o "$iso" $MKISOFS_OPTS $ISOFS
}
#################### USB with partitions
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${console_spec}
+APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${kernel_args}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${console_spec}
+APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${kernel_args}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
cat >$tmp/isolinux.cfg <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${console_spec}
+APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${kernel_args}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${console_spec}
+APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${kernel_args}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40