[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 0/4] Introduce the microvm machine type
From: |
Sergio Lopez |
Subject: |
Re: [Qemu-devel] [PATCH v3 0/4] Introduce the microvm machine type |
Date: |
Thu, 29 Aug 2019 17:46:04 +0200 |
User-agent: |
mu4e 1.2.0; emacs 26.2 |
Jing Liu <address@hidden> writes:
> Hi Sergio,
>
> The idea is interesting and I tried to launch a guest by your
> guide but seems failed to me. I tried both legacy and normal modes,
> but the vncviewer connected and told me that:
> The vm has no graphic display device.
> All the screen in vnc is just black.
The microvm machine type doesn't support any graphics device, so you
need to rely on the serial console.
> kernel config:
> CONFIG_KVM_MMIO=y
> CONFIG_VIRTIO_MMIO=y
>
> I don't know if any specified kernel version/patch/config
> is needed or anything I missed.
> Could you kindly give some tips?
I'm testing it with upstream vanilla Linux. In addition to MMIO, you
need to add support for PVH (the next version of this patchset, v4, will
support booting from FW, so it'll be possible to use non-PVH ELF kernels
and bzImages too).
I've just uploaded a working kernel config here:
https://gist.github.com/slp/1060ba3aaf708584572ad4109f28c8f9
As for the QEMU command line, something like this should do the trick:
./x86_64-softmmu/qemu-system-x86_64 -smp 1 -m 1g -enable-kvm -M microvm,legacy
-kernel vmlinux -append "earlyprintk=ttyS0 console=ttyS0 reboot=k panic=1"
-nodefaults -no-user-config -nographic -serial stdio
If this works, you can move to non-legacy mode with a virtio-console:
./x86_64-softmmu/qemu-system-x86_64 -smp 1 -m 1g -enable-kvm -M microvm -kernel
vmlinux -append "console=hvc0 reboot=k panic=1" -nodefaults -no-user-config
-nographic -serial pty -chardev stdio,id=virtiocon0,server -device
virtio-serial-device -device virtconsole,chardev=virtiocon0
If is still working, you can try adding some devices too:
./x86_64-softmmu/qemu-system-x86_64 -smp 1 -m 1g -enable-kvm -M microvm -kernel
vmlinux -append "console=hvc0 reboot=k panic=1 root=/dev/vda" -nodefaults
-no-user-config -nographic -serial pty -chardev stdio,id=virtiocon0,server
-device virtio-serial-device -device virtconsole,chardev=virtiocon0 -netdev
user,id=testnet -device virtio-net-device,netdev=testnet -drive
id=test,file=alpine-rootfs-x86_64.raw,format=raw,if=none -device
virtio-blk-device,drive=test
Sergio.
> Thanks very much.
> Jing
>
>
>
>> A QEMU instance with the microvm machine type can be invoked this way:
>>
>> - Normal mode:
>>
>> qemu-system-x86_64 -M microvm -m 512m -smp 2 \
>> -kernel vmlinux -append "console=hvc0 root=/dev/vda" \
>> -nodefaults -no-user-config \
>> -chardev pty,id=virtiocon0,server \
>> -device virtio-serial-device \
>> -device virtconsole,chardev=virtiocon0 \
>> -drive id=test,file=test.img,format=raw,if=none \
>> -device virtio-blk-device,drive=test \
>> -netdev tap,id=tap0,script=no,downscript=no \
>> -device virtio-net-device,netdev=tap0
>>
>> - Legacy mode:
>>
>> qemu-system-x86_64 -M microvm,legacy -m 512m -smp 2 \
>> -kernel vmlinux -append "console=ttyS0 root=/dev/vda" \
>> -nodefaults -no-user-config \
>> -drive id=test,file=test.img,format=raw,if=none \
>> -device virtio-blk-device,drive=test \
>> -netdev tap,id=tap0,script=no,downscript=no \
>> -device virtio-net-device,netdev=tap0 \
>> -serial stdio
>>
signature.asc
Description: PGP signature