qemu-for-kernel-development
QEMU kernel development skill for driver and kernel testing. Use when booting custom kernels in QEMU, Buildroot/Yocto rootfs, virtio devices, or NFS root for driver iteration. Activates on queries about QEMU kernel dev, Buildroot QEMU, virtio block, kernel module test QEMU, or -append root=
How do I install this agent skill?
npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill qemu-for-kernel-developmentIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides legitimate guidance and command-line examples for using QEMU in kernel and driver development workflows. No security issues or malicious patterns were identified.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
QEMU for Kernel Development
Purpose
Guide agents through QEMU-based kernel and driver development workflows: building/booting custom kernels, attaching virtio block/network, using Buildroot or minimal initramfs, and rapid module test cycles — focused on kernel dev vs general skills/virtualization/qemu-kvm.
When to Use
- Test kernel patch without bare metal
- Develop driver against virtio or emulated DT platform
- CI kernel boot smoke test
- NFS or 9p root for fast edit-compile-test
Workflow
1. Minimal direct kernel boot (arm64 virt)
qemu-system-aarch64 \
-machine virt -cpu cortex-a57 -smp 4 -m 2G \
-kernel arch/arm64/boot/Image \
-append "console=ttyAMA0 root=/dev/vda rw" \
-drive if=virtio,file=rootfs.ext4,format=raw \
-netdev user,id=net0 -device virtio-net-device,netdev=net0 \
-nographic
x86_64:
qemu-system-x86_64 -enable-kvm -m 4G -smp 4 \
-kernel arch/x86/boot/bzImage \
-append "console=ttyS0 root=/dev/vda rw" \
-drive file=rootfs.img,format=raw,if=virtio \
-nographic
2. Buildroot rootfs loop
cd buildroot
make qemu_aarch64_virt_defconfig
make
# output/images/Image, rootfs.ext4
Integrate custom kernel: set BR2_LINUX_KERNEL_CUSTOM_VERSION or external tree.
3. Out-of-tree module test
# on host — cross build
make -C $KERNEL_SRC M=$PWD modules
# in guest or via initramfs
insmod mydriver.ko
dmesg | tail
Share tree with 9p:
-fsdev local,id=dev,path=$PWD,security_model=none \
-device virtio-9p-pci,fsdev=dev,mount_tag=hostshare
# guest: mount -t 9p -o trans=virtio hostshare /mnt
4. GDB stub for kernel
qemu-system-aarch64 ... -s -S
gdb vmlinux
(gdb) target remote :1234
(gdb) break start_kernel
Use CONFIG_KGDB for live kernel debugging after boot.
5. Device tree overrides
qemu-system-aarch64 -machine virt -dtb myboard.dtb ...
virt machine provides virtio devices; platform drivers can target QEMU -device models.
6. Agent usage
/qemu-for-kernel-development Boot arm64 virt with custom Image and virtio rootfs for driver CI
Common Problems
| Symptom | Cause | Fix |
|---|---|---|
| Kernel panic no root | Wrong root= | root=/dev/vda for virtio blk |
| No console output | Missing console= on cmdline | console=ttyAMA0 / ttyS0 |
| Module vermagic error | Built against wrong tree | Same KERNEL_SRC as booted image |
| Slow without KVM | TCG emulation | -enable-kvm on x86 host |
| DTB mismatch | Wrong machine | Use virt DTB from kernel make dtbs |
Related Skills
skills/virtualization/qemu-kvm— KVM, VFIO, libvirtskills/qemu/qemu-embedded-simulation— bare-metal MCU QEMUskills/kernel/kernel-testing— KUnit, kselftestskills/kernel-dev/device-tree— DT for virt/platformskills/debuggers/gdb— remote GDB basics
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/mohitmishra786/low-level-dev-skills/qemu-for-kernel-development">View qemu-for-kernel-development on skillZs</a>