# we disable the initial logic that called prep.sh if that was not the case
# this is because prep.sh needs to know pldistro
if [ ! -f $ISOREF/isofs/bootcd.img -o ! -f $ISOREF/version.txt ] ; then
# we disable the initial logic that called prep.sh if that was not the case
# this is because prep.sh needs to know pldistro
if [ ! -f $ISOREF/isofs/bootcd.img -o ! -f $ISOREF/version.txt ] ; then
- echo "Could not find isofs and version.txt in $ISOREF"
- if [ "$VARIANT" == "build" ] ; then
- echo "You have to run prep.sh prior to calling $COMMAND"
- else
- echo "You need to create your variant image, see kvariant.sh"
- fi
- echo "Exiting .."
- exit 1
+ echo "Could not find isofs and version.txt in $ISOREF"
+ if [ "$VARIANT" == "build" ] ; then
+ echo "You have to run prep.sh prior to calling $COMMAND"
+ else
+ echo "You need to create your variant image, see kvariant.sh"
+ fi
+ echo "Exiting .."
+ exit 1
- case $opt in
- f) NODE_CONFIGURATION_FILE=$OPTARG ;;
- t) TYPES="$TYPES $OPTARG" ;;
- a) TYPES="$ALL_TYPES" ;;
- s) CONSOLE_INFO="$OPTARG" ;;
- S) CONSOLE_INFO=$SERIAL_CONSOLE ;;
- O) OUTPUT_BASE="$OPTARG" ;;
- o) OUTPUT_NAME="$OPTARG" ;;
- C) CUSTOM_DIR="$OPTARG" ;;
- V) VARIANT="$OPTARG" ;;
- k) KERNEL_ARGS="$KERNEL_ARGS $OPTARG" ;;
- n) DRY_RUN=true ;;
- h|*) usage ;;
- esac
+ case $opt in
+ f) NODE_CONFIGURATION_FILE=$OPTARG ;;
+ t) TYPES="$TYPES $OPTARG" ;;
+ a) TYPES="$ALL_TYPES" ;;
+ s) CONSOLE_INFO="$OPTARG" ;;
+ S) CONSOLE_INFO=$SERIAL_CONSOLE ;;
+ O) OUTPUT_BASE="$OPTARG" ;;
+ o) OUTPUT_NAME="$OPTARG" ;;
+ C) CUSTOM_DIR="$OPTARG" ;;
+ V) VARIANT="$OPTARG" ;;
+ k) KERNEL_ARGS="$KERNEL_ARGS $OPTARG" ;;
+ n) DRY_RUN=true ;;
+ h|*) usage ;;
+ esac
if [ -n "$NODE_CONFIGURATION_FILE" ] ; then
# check existence of NODE_CONFIGURATION_FILE and normalize as we will change directory
if [ -n "$NODE_CONFIGURATION_FILE" ] ; then
# check existence of NODE_CONFIGURATION_FILE and normalize as we will change directory
- if [ ! -f "$NODE_CONFIGURATION_FILE" ] ; then
- echo "Node configuration file $NODE_CONFIGURATION_FILE not found - exiting"
- exit 1
- fi
- cf_dir="$(dirname $NODE_CONFIGURATION_FILE)"
- cf_dir="$(cd $cf_dir; pwd -P)"
- cf_file="$(basename $NODE_CONFIGURATION_FILE)"
- NODE_CONFIGURATION_FILE="$cf_dir"/"$cf_file"
+ if [ ! -f "$NODE_CONFIGURATION_FILE" ] ; then
+ echo "Node configuration file $NODE_CONFIGURATION_FILE not found - exiting"
+ exit 1
+ fi
+ cf_dir="$(dirname $NODE_CONFIGURATION_FILE)"
+ cf_dir="$(cd $cf_dir; pwd -P)"
+ cf_file="$(basename $NODE_CONFIGURATION_FILE)"
+ NODE_CONFIGURATION_FILE="$cf_dir"/"$cf_file"
fi
# check TYPES
local matcher="XXX$(echo $ALL_TYPES | sed -e 's,\W,XXX,g')XXX"
for t in $TYPES; do
fi
# check TYPES
local matcher="XXX$(echo $ALL_TYPES | sed -e 's,\W,XXX,g')XXX"
for t in $TYPES; do
- IS_SERIAL=true
- console_dev=$(echo "$console" | awk -F: ' {print $1}')
- console_baud=$(echo "$console" | awk -F: ' {print $2}')
- [ -z "$console_baud" ] && console_baud="115200"
- local console_parity=$(echo "$console" | awk -F: ' {print $3}')
- [ -z "$console_parity" ] && console_parity="n"
- local console_bits=$(echo "$console" | awk -F: ' {print $4}')
- [ -z "$console_bits" ] && console_bits="8"
- console_spec="console=${console_dev},${console_baud}${console_parity}${console_bits}"
- local tty_nb=$(echo $console_dev | sed -e 's,[a-zA-Z],,g')
- console_serial_line="SERIAL ${tty_nb} ${console_baud}"
- echo "Serial mode"
- echo "console_serial_line=${console_serial_line}"
- echo "console_spec=${console_spec}"
+ IS_SERIAL=true
+ console_dev=$(echo "$console" | awk -F: ' {print $1}')
+ console_baud=$(echo "$console" | awk -F: ' {print $2}')
+ [ -z "$console_baud" ] && console_baud="115200"
+ local console_parity=$(echo "$console" | awk -F: ' {print $3}')
+ [ -z "$console_parity" ] && console_parity="n"
+ local console_bits=$(echo "$console" | awk -F: ' {print $4}')
+ [ -z "$console_bits" ] && console_bits="8"
+ console_spec="console=${console_dev},${console_baud}${console_parity}${console_bits}"
+ local tty_nb=$(echo $console_dev | sed -e 's,[a-zA-Z],,g')
+ console_serial_line="SERIAL ${tty_nb} ${console_baud}"
+ echo "Serial mode"
+ echo "console_serial_line=${console_serial_line}"
+ echo "console_spec=${console_spec}"
ISOFS="${BUILDTMP}/isofs"
mkdir -p "$ISOFS"
for i in "$ISOREF"/isofs/{bootcd.img,kernel}; do
ISOFS="${BUILDTMP}/isofs"
mkdir -p "$ISOFS"
for i in "$ISOREF"/isofs/{bootcd.img,kernel}; do
# (*) memdisk that is not useful
isolinuxfiles="isolinux.bin ldlinux.c32"
for isolinuxfile in $isolinuxfiles; do
# (*) memdisk that is not useful
isolinuxfiles="isolinux.bin ldlinux.c32"
for isolinuxfile in $isolinuxfiles; do
# the right CD is mounted. We used to boot from an initrd and mount
# the CD on /usr. Now we just run everything out of the initrd.
for file in $OVERLAY/pl_version $OVERLAY/usr/isolinux/pl_version ; do
# the right CD is mounted. We used to boot from an initrd and mount
# the CD on /usr. Now we just run everything out of the initrd.
for file in $OVERLAY/pl_version $OVERLAY/usr/isolinux/pl_version ; do
# but never got around to it. Just install the same parameters for
# both for now.
for dir in $OVERLAY/usr/boot $OVERLAY/usr/boot/backup ; do
# but never got around to it. Just install the same parameters for
# both for now.
for dir in $OVERLAY/usr/boot $OVERLAY/usr/boot/backup ; do
- install -D -m 644 $PLC_BOOT_CA_SSL_CRT $dir/cacert.pem
- install -D -m 644 $PLC_ROOT_GPG_KEY_PUB $dir/pubring.gpg
- echo "$PLC_BOOT_HOST" >$dir/boot_server
- echo "$PLC_BOOT_SSL_PORT" >$dir/boot_server_port
- echo "/boot/" >$dir/boot_server_path
+ install -D -m 644 $PLC_BOOT_CA_SSL_CRT $dir/cacert.pem
+ install -D -m 644 $PLC_ROOT_GPG_KEY_PUB $dir/pubring.gpg
+ echo "$PLC_BOOT_HOST" >$dir/boot_server
+ echo "$PLC_BOOT_SSL_PORT" >$dir/boot_server_port
+ echo "/boot/" >$dir/boot_server_path
if [ -z "$ROOT_PASSWORD" ] ; then
# Generate an encrypted password with crypt() if not defined
# in a static configuration.
if [ -z "$ROOT_PASSWORD" ] ; then
# Generate an encrypted password with crypt() if not defined
# in a static configuration.
import crypt, random, string
salt = [random.choice(string.letters + string.digits + "./") for i in range(0,8)]
print crypt.crypt('$PLC_ROOT_PASSWORD', '\$1\$' + "".join(salt) + '\$')
import crypt, random, string
salt = [random.choice(string.letters + string.digits + "./") for i in range(0,8)]
print crypt.crypt('$PLC_ROOT_PASSWORD', '\$1\$' + "".join(salt) + '\$')
# Install node configuration file (e.g., if node has no floppy disk or USB slot)
if [ -f "$NODE_CONFIGURATION_FILE" ] ; then
# Install node configuration file (e.g., if node has no floppy disk or USB slot)
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
+ 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
- echo "* Compressing custom image"
- (cd "$CUSTOM_DIR" && find . | cpio --quiet -c -o) | gzip -9 >$ISOFS/custom.img
+ echo "* Compressing custom image"
+ (cd "$CUSTOM_DIR" && find . | cpio --quiet -c -o) | gzip -9 >$ISOFS/custom.img
### COPIED FROM build_usb() below!!!!
echo -n " populating USB image... "
mcopy -bsQ -i "$usb" "$ISOFS"/* z:/
### COPIED FROM build_usb() below!!!!
echo -n " populating USB image... "
mcopy -bsQ -i "$usb" "$ISOFS"/* z:/
# update etc/inittab to start with pl_rsysinit
for file in etc/inittab etc/event.d/rcS etc/init/rcS.conf; do
# update etc/inittab to start with pl_rsysinit
for file in etc/inittab etc/event.d/rcS etc/init/rcS.conf; do
- [ -f $file ] && sed -i 's,pl_sysinit,pl_rsysinit,' $file
+ [ -f $file ] && sed -i 's,pl_sysinit,pl_rsysinit,' $file
done
# modify inittab to have a serial console
# xxx this might well be broken with f12 and above xxx
if [ -n "$serial" ] ; then
done
# modify inittab to have a serial console
# xxx this might well be broken with f12 and above xxx
if [ -n "$serial" ] ; then
- if [ "$CONSOLE_INFO" == "$SERIAL_CONSOLE" ] ; then
- serial="-serial"
- else
- serial="-serial-$(echo $CONSOLE_INFO | sed -e 's,:,,g')"
- fi
+ if [ "$CONSOLE_INFO" == "$SERIAL_CONSOLE" ] ; then
+ serial="-serial"
+ else
+ serial="-serial-$(echo $CONSOLE_INFO | sed -e 's,:,,g')"
+ fi
- if [ -n "$OUTPUT_NAME" ] ; then
- output=$OUTPUT_NAME
- else
- output="${OUTPUT_BASE}${serial}${tname}"
- fi
-
- echo "*** Dealing with type=$arg"
- echo '*' build_$t "$output" "$CUSTOM_DIR"
- [ -n "$DRY_RUN" ] || build_$t "$output" "$CUSTOM_DIR"
+ if [ -n "$OUTPUT_NAME" ] ; then
+ output=$OUTPUT_NAME
+ else
+ output="${OUTPUT_BASE}${serial}${tname}"
+ fi
+
+ echo "*** Dealing with type=$arg"
+ echo '*' build_$t "$output" "$CUSTOM_DIR"
+ [ -n "$DRY_RUN" ] || build_$t "$output" "$CUSTOM_DIR"