Thread (2 messages) 2 messages, 1 author, 2017-10-19

minimal kernel config for qemu/malta

From: "Jason A. Donenfeld" <Jason@zx2c4.com>
Date: 2017-10-19 21:32:17

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help