summaryrefslogtreecommitdiff
path: root/rushmore-linux/rl.sh
blob: 39614bc6ac90d71591d9669922c72c8a31647001 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/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