Hey folks, I've got some CI infrastructure for WireGuard sitting on build.wireguard.com , where I build new kernels for different architectures. This works well for x86{_64) and arm(64), but I'm having trouble getting it rolling on qemu/malta, and none of my usual tricks seem to be working. (By tricks of course I mean enabling a bunch of random stuff until it works, and then bisecting options until I find the missing one...) The magic lives here: https://git.zx2c4.com/WireGuard/tree/src/tests/qemu Essentially what's happening is that this config file: https://git.zx2c4.com/WireGuard/tree/src/tests/qemu/kernel.config is prepended with this set of MIPS-specific directives: CONFIG_CPU_MIPS32_R2=y CONFIG_MIPS_MALTA=y And then is combined into the final .config using: $ make allnoconfig $ scripts/kconfig/merge_config.sh -n .config kernel.config.from.above Finally, qemu is launched with: qemu-system-mips \ -nodefaults \ -nographic \ -cpu 24Kf -machine malta \ -smp 2 \ -m 192M \ -object rng-random,id=rng0,filename=/dev/urandom \ -device virtio-rng-pci,rng=rng0 \ -device virtio-serial,max_ports=2 \ -chardev stdio,id=stdio \ -device virtconsole,chardev=stdio \ -chardev file,id=status,path=./result \ -device virtserialport,chardev=status \ -no-reboot \ -monitor none \ -kernel ./kernel-src/vmlinux While this general procedure works flawlessly for intel and arm, with mips, it just seems to hang, with no output, and I can't seem to find which option I'm missing. As you might have seen above, I'm mostly concerned with finding the minimal set of options required to _generate_ a minimal full config. However, if it's easier for you to view the whole config at once after the merge steps above, it lives here: http://ix.io/Bud If anybody knows what I'm missing to launch a simple malta/virtio kernel on qemu, please do let me know. Thanks, Jason