about summary refs log tree commit diff stats
path: root/gen_soso_iso
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-09-14 01:42:29 -0700
committerKartik Agaram <vc@akkartik.com>2019-09-14 01:45:55 -0700
commit46bb1d3157f9ad575c83a4bfa1e32b0d21bc8546 (patch)
tree28918f653d7cf970d33d5592047ef663289aca40 /gen_soso_iso
parentded2b24ce28f4a9df75ce40117f0f06f09574369 (diff)
downloadmu-46bb1d3157f9ad575c83a4bfa1e32b0d21bc8546.tar.gz
5650 - support a second OS: soso
https://github.com/ozkl/soso

+ Much smaller than Linux; builds instantly
+ Supports graphics
- No network support
- Doesn't work on a cloud server (yet?)
Diffstat (limited to 'gen_soso_iso')
-rwxr-xr-xgen_soso_iso44
1 files changed, 44 insertions, 0 deletions
diff --git a/gen_soso_iso b/gen_soso_iso
new file mode 100755
index 00000000..5dd2dec5
--- /dev/null
+++ b/gen_soso_iso
@@ -0,0 +1,44 @@
+#!/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"
+./ntranslate $*
+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