summaryrefslogtreecommitdiff
path: root/rushmore-linux/rl.sh
diff options
context:
space:
mode:
Diffstat (limited to 'rushmore-linux/rl.sh')
-rwxr-xr-xrushmore-linux/rl.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/rushmore-linux/rl.sh b/rushmore-linux/rl.sh
new file mode 100755
index 0000000..2f7ecae
--- /dev/null
+++ b/rushmore-linux/rl.sh
@@ -0,0 +1,27 @@
+#!/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)"
+sleep 1
+qemu-system-x86_64 -kernel linux/arch/x86/boot/bzImage -initrd "$BUILD_DIR/initramfs.cpio" -append "console=ttyS0" -nographic \ No newline at end of file