#!/bin/sh # Build one or more .subx files into an ELF binary, and package it up into a # bootable ISO image with a Soso (https://github.com/ozkl/soso) kernel. # # Must be run on Linux, and from the top-level mu/ directory. Will ask for # `sudo` privileges at a couple of points. # # Soso is published under the 2-clause BSD license. set -e if [ $# -ne 1 ] then echo "Usage: `basename $0` " exit 1 fi echo "=== constructing initramfs out of SubX binary" dd if=/dev/zero of=initrd.fat bs=8M count=1 LOOP=`losetup -f` sudo losetup $LOOP initrd.fat sudo mkfs.vfat $LOOP sudo mount $LOOP /mnt sudo cp $1 /mnt/init sudo umount /mnt sudo losetup -d $LOOP sync chown $SUDO_USER:$SUDO_USER initrd.fat echo "=== building soso kernel" ( cd tools/iso/kernel.soso make ) echo "=== generating mu_soso.iso" mkdir -p outfs/boot/grub cp tools/iso/kernel.soso/grub.cfg outfs/boot/grub cp tools/iso/kernel.soso/kernel.bin outfs/boot/ cp initrd.fat outfs/boot/ grub-mkrescue -o mu_soso.iso outfs