#!/bin/sh set -euo pipefail ROOT="$(dirname "$0")" BUILD_DIR="$ROOT/build" ROOTFS_DIR="$ROOT/rootfs" mkdir -p "$BUILD_DIR" mkdir -p "$ROOTFS_DIR/proc" "$ROOTFS_DIR/sys" "$ROOTFS_DIR/dev" echo "Compiling rlinit" musl-gcc -static -O2 -s rlinit/rlinit.c -o "$BUILD_DIR/init" echo "Compiling rlwsd" musl-gcc -static -O2 -s rlwsd/rlwsd.c -o "$BUILD_DIR/rlwsd" echo "Building rootfs" cp "$BUILD_DIR/init" "$ROOTFS_DIR/init" cp "$BUILD_DIR/rlwsd" "$ROOTFS_DIR/rlwsd" echo "Building initramfs" (cd "$ROOTFS_DIR" && find . -print0 | cpio --null -ov --format=newc) > "$BUILD_DIR/initramfs.cpio" echo "Running QEMU (do CTRL+A then X to quit)" qemu-system-x86_64 -kernel linux/arch/x86/boot/bzImage -initrd "$BUILD_DIR/initramfs.cpio" -append "console=ttyS0" -nographic