#!/usr/bin/env bash set -e # # This script creates a bootable image and should at some point in the future # be replaced by the proper NetBSD infrastructure. # : ${ARCH=i386} : ${OBJ=../obj.${ARCH}} : ${TOOLCHAIN_TRIPLET=i586-elf32-minix-} : ${BUILDSH=build.sh} : ${SETS="minix-base"} : ${IMG=minix_x86_usb.img} if [ ! -f ${BUILDSH} ] then echo "Please invoke me from the root source dir, where ${BUILDSH} is." exit 1 fi #: ${RAMDISK_SIZE=$(( 200*(2**20) ))} : ${BOOTXX_SECS=32} # set up disk creation environment . releasetools/image.defaults . releasetools/image.functions # where the kernel & boot modules will be MODDIR=${DESTDIR}/boot/minix/.temp echo "Building work directory..." build_workdir "$SETS" echo "Adding extra files..." workdir_add_ramdisk_files # set correct message of the day (log in and install tip) cp releasetools/release/ramdisk/etc/issue ${ROOT_DIR}/etc/issue add_file_spec "etc/issue" extra.cdfiles echo "Bundling packages..." bundle_packages "$BUNDLE_PACKAGES" echo "Creating specification files..." create_input_spec create_protos echo "Writing ramdisk image..." # add the other modules for boot cp ${MODDIR}/* ${WORK_DIR} create_ramdisk_image ${RAMDISK_SIZE} echo "Writing USB image..." # clear ROOT_DIR rm -rf ${ROOT_DIR}/* echo ". type=dir uid=0 gid=0 mode=0755" > ${WORK_DIR}/extra.boot # move all modules back to ROOT_DIR mv ${WORK_DIR}/kernel ${WORK_DIR}/mod* ${ROOT_DIR}/ add_file_spec "kernel" extra.boot for i in ${ROOT_DIR}/mod*; do add_file_spec $(basename $i) extra.boot done # add boot.cfg cat >${ROOT_DIR}/boot.cfg <