summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild/build-kernel24
-rwxr-xr-xbuild/run-qemu16
2 files changed, 40 insertions, 0 deletions
diff --git a/build/build-kernel b/build/build-kernel
new file mode 100755
index 0000000..4265e94
--- /dev/null
+++ b/build/build-kernel
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+VERSION="6.12.11"
+MAJOR_VERSION="$(echo "$VERSION" | sed -E 's/^([0-9]*)\..*$/\1/g')"
+
+SRC_DIR=".kernel"
+URL="https://cdn.kernel.org/pub/linux/kernel/v$MAJOR_VERSION.x/linux-$VERSION.tar.xz"
+
+TARGET_KERNEL="linux-$VERSION/arch/x86_64/boot/bzImage"
+
+mkdir -p "$SRC_DIR"
+cd "$SRC_DIR"
+
+if [ ! -e "linux-$VERSION" ]; then
+ curl "$URL" | tar -J -xvf -
+fi
+
+if [ ! -e "$TARGET_KERNEL" ]; then
+ cd "linux-$VERSION"
+ make defconfig
+ make -j$(nproc)
+fi
+
+echo "$SRC_DIR/$TARGET_KERNEL"
diff --git a/build/run-qemu b/build/run-qemu
new file mode 100755
index 0000000..dbe7895
--- /dev/null
+++ b/build/run-qemu
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+KERNEL_PATH=$(./build/build-kernel)
+
+mkdir -p .kernel/initramfs
+cp "$1" .kernel/initramfs/init
+cp "$2" .kernel/initramfs/process
+printf "./init\n./process\n" | cpio -D .kernel/initramfs/ --quiet -H newc -o | gzip -9 -n > .kernel/initramfs.gz
+
+qemu-system-x86_64 \
+ --cpu host \
+ --enable-kvm \
+ -initrd .kernel/initramfs.gz \
+ -kernel "$KERNEL_PATH" \
+ -append "quiet rdinit=init" \
+ -device virtio-gpu-pci