Skip to content

Instantly share code, notes, and snippets.

@kuraga
Created March 3, 2023 20:35
Show Gist options
  • Save kuraga/4deec061ab859f630bdab2005b388276 to your computer and use it in GitHub Desktop.
Save kuraga/4deec061ab859f630bdab2005b388276 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -x
set -e
set -u
truncate -s 64MiB hdd.img
losetup /dev/loop0 hdd.img
sgdisk -n 1:0:+60MiB -t 1:ef00 -c 1:"linux-boot" -p /dev/loop0
partprobe /dev/loop0
mkfs.vfat -F 32 /dev/loop0p1
mkdir boot
mount /dev/loop0p1 boot
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.1.tar.xz
tar xJf linux-6.2.1.tar.xz
cd linux-6.2.1
make tinyconfig ARCH=i386
make clean && make mrproper && make distclean
./scripts/config -e CONFIG_64BIT \
-d CONFIG_EMBEDDED \
-d CONFIG_EXPERT \
-e CONFIG_SERIAL_8250 \
-e CONFIG_SERIAL_8250_CONSOLE \
-e CONFIG_VIRTIO \
-e CONFIG_VIRTIO_MENU \
-e CONFIG_PCI \
-e CONFIG_VIRTIO_PCI \
-e CONFIG_VIRTIO_BLK \
-e CONFIG_EFI_PARTITION \
-e CONFIG_EXT4_FS \
-e CONFIG_BINFMT_ELF
yes "" | make oldconfig
make -j$(nproc)
cp -iv arch/x86/boot/bzImage ../boot/vmlinuz-6.2.1
cp -iv System.map ../boot/System.map-6.2.1
cp -iv .config ../boot/config-6.2.1
cd ..
umount boot
losetup -d /dev/loop0
cp -v /usr/share/edk2-ovmf/OVMF_VARS.fd .
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2-ovmf/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=./OVMF_VARS.fd \
-drive file=hdd.img,format=raw,if=virtio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment