RE: How to enable Guest Linux VM on Raspberry PI3?

Lei Zhou <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi Adam,

I built Fiasco/L4Re and L4Linux vmlinuz, my own ramdisk-armv7.cpio.gz.

This is my l4linux.cfg content:
==============================================
-- vim:set ft=lua:                                                              
                                                                                
local L4 = require("L4");                                                       
                                                                                
L4.default_loader:start({ log = L4.Env.log:m("rws"), },                         
                        "rom/vmlinuz mem=64M console=ttyLv0 " ..                
                        "l4x_rd=rom/ramdisk-armv7.cpio.gz" ..  L4.Info.arch() .. ".rd "
                        .. "root=1:0 ramdisk_size=4000 init=/bin/sh");  
=====================================================
This is my module.list:

entry L4Linux-rpi3                                                              
roottask moe rom/l4linux.cfg                                                    
module l4linux.cfg                                                              
module l4re                                                                     
module ned                                                                      
module vmlinuz                                                                  
module ramdisk-armv7.cpio.gz
=======================================================

I made final bootstrap_L4Linux-rpi3.uimage.

=====================================================

After Rpi3 booted up, it stopped at NED exception and hangs!  And log is pasted as below:

[0:20000000;ffffffff]
MOE: Hello world
MOE: found 501008 KByte free memory
MOE: found RAM from 54000 to 1f000000
MOE: allocated 495 KByte for the page array @0x55000
MOE: virtual user address space [0-bfffffff]
MOE: rom name space cap -> [C:103000]
MOE: rwfs name space cap -> [C:105000]
  BOOTFS: [1100000-1100147] [C:107000] l4linux.cfg
  BOOTFS: [1101000-11164f0] [C:109000] l4re
  BOOTFS: [1117000-117876c] [C:10b000] ned
  BOOTFS: [1179000-15ac4d0] [C:10d000] vmlinuz
  BOOTFS: [15ad000-1717400] [C:10f000] ramdisk-armv7.cpio.gz
MOE: cmdline: moe rom/l4linux.cfg
MOE: Starting: rom/ned rom/l4linux.cfg
MOE: loading 'rom/ned'
Ned says: Hi World!
L4Re: rom/ned: Unhandled exception: PC=0x102cb30 PFA=20a960 LdrFlgs=0
========================================================

$arm-***-objdump -ldSC ned   // gives following disassembly at above PC:

 102cb1c:       e1a00004        mov     r0, r4                                  
 102cb20:       e34f1ff0        movt    r1, #65520      ; 0xfff0                
 102cb24:       e30c825c        movw    r8, #49756      ; 0xc25c                
 102cb28:       ebffa155        bl      1015084 <lua_rawsetp(lua_State*, int, void const*)>
 102cb2c:       ed9f0b71        vldr    d0, [pc, #452]  ; 102ccf8 <luaopen_package(lua_State*)+0x24c>
 102cb30:       e1a00004        mov     r0, r4                                  
 102cb34:       e3a01088        mov     r1, #136        ; 0x88                  
 102cb38:       e3406102        movt    r6, #258        ; 0x102                 
 102cb3c:       ebffe4f1        bl      1025f08 <luaL_checkversion_(lua_State*, double, unsigned int)>
=====================================================

Can you please help me?  or get me familiar with how to debug on the L4Re system?

Much appreciated!
Lei





________________________________________
From: Lei Zhou
Sent: Friday, June 07, 2019 5:34 PM
To: Adam Lackorzynski; [email protected]
Subject: RE: How to enable Guest Linux VM on Raspberry PI3?

Thanks Adam & Jakub for your promptly support.

1>  I will experiment L4Linux on my Raspberry PI3 to get guest Linux VM up.
2>  Yes, after I sycned to lastest <kernkonzept> code base and was able to make Linux VM upworking on the QEMU virtual ARM platform.   Was using the source code from https://svn.l4re.org/repos/oc/l4re/.   Seems they are not exactly the same.

Have a great weekend!

Lei
________________________________________
From: l4-hackers [[email protected]] on behalf of Adam Lackorzynski [[email protected]]
Sent: Friday, June 07, 2019 3:54 PM
To: [email protected]
Subject: Re: How to enable Guest Linux VM on Raspberry PI3?

On Fri Jun 07, 2019 at 18:27:18 +0000, 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://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_kernkonzept_manifest_wiki_LinuxVM&d=DwICAg&c=yzoHOc_ZK-sxl-kfGNSEvlJYanssXN3q-lhj0sp26wE&r=zgPsMwBitHoKyTzLULGKGmtjlsV9d0M7_KqUo-WYeMg&m=VXUaQ18nPG5EFxWsPyMuOEWiVIUJi6NK5XgzyKn7IqM&s=2xhsd-rfRCHenVuPfjY7zmNW0FLbQ0Da6Io2gb_UuD4&e= 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?

You can only use L4Linux as the Raspberries do not support
hardware-assisted virtualization (because they have the wrong interrupt
controller).


Adam

> 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.
> VMM[main]: Hello out there.
> VMM: FATAL: ERROR: ARM GIC virtualization does not work without passing the virtual GICC via the vbus
> VMM[vm]: Device creation for virtual device virtio_uart@20000 failed. Disabling device.
> VMM[]: [email protected],virtiocap: capability net is invalid.
> VMM[vm]: Device creation for virtual device virtio_net@10000 failed. Disabling device.
> VMM: FATAL: ERROR: ARM GIC virtualization does not work without passing the virtual GICC via the vbus
> VMM[vm]: Device creation for virtual device interrupt-controller failed. Disabling device.
> VMM: FATAL: Parsing timer interrupt: Argument out of range
> qemu-system-aarch64: terminating on signal 2
> Makefile:6: recipe for target 'do-all-make-goals' failed
> make: *** [do-all-make-goals] Interrupt
> =========================================================================
>
> Any feedbacks are greatly appreciated!
> Lei Zhou
>
> _______________________________________________
> l4-hackers mailing list
> [email protected]
> https://urldefense.proofpoint.com/v2/url?u=http-3A__os.inf.tu-2Ddresden.de_mailman_listinfo_l4-2Dhackers&d=DwICAg&c=yzoHOc_ZK-sxl-kfGNSEvlJYanssXN3q-lhj0sp26wE&r=zgPsMwBitHoKyTzLULGKGmtjlsV9d0M7_KqUo-WYeMg&m=VXUaQ18nPG5EFxWsPyMuOEWiVIUJi6NK5XgzyKn7IqM&s=aHoTBnTfuPAa7iXROnGw4Zd7uV_Id7cYJn496JQlMhQ&e=

_______________________________________________
l4-hackers mailing list
[email protected]
https://urldefense.proofpoint.com/v2/url?u=http-3A__os.inf.tu-2Ddresden.de_mailman_listinfo_l4-2Dhackers&d=DwICAg&c=yzoHOc_ZK-sxl-kfGNSEvlJYanssXN3q-lhj0sp26wE&r=zgPsMwBitHoKyTzLULGKGmtjlsV9d0M7_KqUo-WYeMg&m=VXUaQ18nPG5EFxWsPyMuOEWiVIUJi6NK5XgzyKn7IqM&s=aHoTBnTfuPAa7iXROnGw4Zd7uV_Id7cYJn496JQlMhQ&e=
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.