How to enable Guest Linux VM on Raspberry PI3?

Jakub Jermar jakub.jermar at kernkonzept.com
Fri Jun 7 21:15:51 CEST 2019


Hi Lei Zhou!

On 6/7/19 8:27 PM, Lei Zhou wrote:
> After I brought up L4Re and Fiasco on Raspberry PI3,  would like to enable guest Linux VM on top of it.
> 
> I'm looking at the link https://github.com/kernkonzept/manifest/wiki/LinuxVM and hoping I can do the same thing on Raspberry PI3.   
> 
> The link seems using hardware-assisted virtualization option uvmm based for guest VM.     There seems also L4Linux Paravirtualization option.    Which option should I use for me to enable guest LInux  VM on Raspberry PI3?

For aarch64, use uvmm.

> In addition,  when I followed the link to try on QEMU first,   encounter some "vbus" capability issue.   I followed the guidance exactly as the link says.   However,   when I started the command to spawning the Linux VM as:
>          $make E=uvmm-basic qemu
>
> It failed with following log:
>
> ============================================
> MOE: virtual user address space [0-7fffffffff]
> MOE: rom name space cap -> [C:103000]
> MOE: rwfs name space cap -> [C:105000]
>   BOOTFS: [41100000-411974b8] [C:107000] uvmm
>   BOOTFS: [41198000-411c4e58] [C:109000] l4re
>   BOOTFS: [411c5000-41246770] [C:10b000] ned
>   BOOTFS: [41247000-412475c4] [C:10d000] virt-arm_virt.dtb
>   BOOTFS: [41248000-41430200] [C:10f000] ramdisk-armv8.cpio.gz
>   BOOTFS: [41431000-41431242] [C:111000] uvmm-basic.ned
>   BOOTFS: [41432000-42618a00] [C:113000] Image.gz
> MOE: cmdline: moe rom/uvmm-basic.ned
> MOE: Starting: rom/ned rom/uvmm-basic.ned
> MOE: loading 'rom/ned'
> Ned says: Hi World!
> Ned: loading file: 'rom/uvmm-basic.ned'
> VMM[vmbus]: 'vbus' capability not found. Hardware access not possible
for VM.

"The 'vbus' capability not found" message is expected as you are not (or
at least the tutorial scenario) is not passing any vbuses to the guest.
This is only needed when you want to pass some I/O devices to the guest.
For the GIC you don't do this with the current sources (though it was
necessary in the past).

> VMM[main]: Hello out there.
> VMM: FATAL: ERROR: ARM GIC virtualization does not work without passing the virtual GICC via the vbus

This makes me think that you are probably not using recent sources. Can
you confirm? With the sources from our GitHub[1], you don't need to put
the GIC on the vbus.

Jakub

[1] https://github.com/kernkonzept

-- 
Kernkonzept GmbH at Dresden, Germany, HRB 31129, CEO Dr.-Ing. Michael
Hohmuth




More information about the l4-hackers mailing list