setup files on cd with boot server info
[bootcd.git] / build.sh
index 47075c0..5940d63 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -2,9 +2,18 @@
 
 set -e
 
-BOOTCD_VERSION="3.0"
+BOOTCD_VERSION="3.0-beta0.1"
 FULL_VERSION_STRING="PlanetLab BootCD $BOOTCD_VERSION"
 
+# which boot server to contact
+BOOTSERVER='boot.planet-lab.org'
+
+# and on which port (protocol will be https)
+BOOTSERVER_PORT='443'
+
+# finally, what path to request from the server
+BOOTSERVER_PATH='boot/'
+
 SYSLINUX_SRC=sources/syslinux-2.11.tar.bz2
 
 ISO=cd.iso
@@ -115,16 +124,36 @@ function build_initrd()
 
     echo "installing our own inittab and init scripts"
     cp -f $CONF_FILES_DIR/inittab $CD_ROOT/etc
-    cp -f $CONF_FILES_DIR/pl_sysinit $CD_ROOT/etc/init.d/
-    cp -f $CONF_FILES_DIR/pl_hwinit $CD_ROOT/etc/init.d/
+    init_scripts="pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot"
+    for script in $init_scripts; do
+       cp -f $CONF_FILES_DIR/$script $CD_ROOT/etc/init.d/
+       chmod +x $CD_ROOT/etc/init.d/$script
+    done
 
     echo "setup basic networking files"
     cp -f $CONF_FILES_DIR/hosts $CD_ROOT/etc/
 
+    echo "setup default network conf file"
+    mkdir -p $CD_ROOT/usr/boot
+    cp -f $CONF_FILES_DIR/default-net.cnf $CD_ROOT/usr/boot/
+
+    echo "setup boot server configuration"
+    cp -f $CONF_FILES_DIR/cacert.pem $CD_ROOT/usr/boot/
+    cp -f $CONF_FILES_DIR/pubring.gpg $CD_ROOT/usr/boot/
+    echo "$BOOTSERVER" > $CD_ROOT/usr/boot/boot_server
+    echo "$BOOTSERVER_PORT" > $CD_ROOT/usr/boot/boot_server_port
+    echo "$BOOTSERVER_PATH" > $CD_ROOT/usr/boot/boot_server_path
+
     echo "copying isolinux configuration files"
     cp -f $CONF_FILES_DIR/isolinux.cfg $CD_ROOT/usr/isolinux/
     echo "$FULL_VERSION_STRING" > $CD_ROOT/usr/isolinux/message.txt
 
+    echo "writing /etc/issue"
+    echo "$FULL_VERSION_STRING" > $CD_ROOT/etc/issue
+    echo "Kernel \r on an \m" >> $CD_ROOT/etc/issue
+    echo "" >> $CD_ROOT/etc/issue
+    echo "" >> $CD_ROOT/etc/issue
+
     echo "making the isolinux initrd kernel command line match rd size"
     let INITRD_SIZE_KB=$(($RAMDISK_SIZE * 1024))
     sed -i "s#ramdisk_size=0#ramdisk_size=$INITRD_SIZE_KB#g" \
@@ -180,7 +209,6 @@ if [ "$1" == "clean" ]; then
 fi
 
 if [ "$1" == "burn" ]; then
-    build_iso
     burn
     exit
 fi