diff options
Diffstat (limited to 'build')
| -rwxr-xr-x | build/build-kernel | 24 | ||||
| -rwxr-xr-x | build/run-qemu | 16 |
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 |