#!/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. # # Soso is published under the 2-clause BSD license. set -e if [ $# -eq 0 ] then echo "Usage: `basename $0` file.subx ..." exit 1 fi echo "=== building SubX binary" ./translate_subx $* mv a.elf init chmod +x init 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 cp init /mnt/ umount /mnt losetup -d $LOOP sync chown $SUDO_USER:$SUDO_USER initrd.fat echo "=== building soso kernel" ( cd kernel.soso make ) echo "=== generating mu_soso.iso" mkdir -p outfs/boot/grub cp kernel.soso/grub.cfg outfs/boot/grub cp kernel.soso/kernel.bin outfs/boot/ cp initrd.fat outfs/boot/ grub-mkrescue -o mu_soso.iso outfs