Re: Sharing one ethernet network device between two L4Linux instances

Matthias Lange <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi,

On 10/21/2015 02:34 PM, Mahdi Aichouch wrote:
> Hello,
> 
> I was able to run two L4linux instances on top of L4 Fiasco OC using a
> Qemu emulator of a versatile express-a9 board .
> 
> I would like to make these two instances share one ethernet network device.

To share a device you need a multiplexer which has access to the
physical device (and drives it) and provide a virtual device for each of
the clients. One possible solution would be to grant one L4Linux
instance access to the physical device and setup a virtual network
connection between the two instances. Then you can e.g. use iptables to
setup forwarding and NAT to route traffic from the second instance.

> I would like also to switch between the two L4Linux shell, because in
> Qemu only one shell is accessible.

For that you can use 'cons' our console multiplexer.

> I followed this guide[1] to connect two L4Linux instances using
> "l4shmnet", and this thread [2]
> to get access to the shell when testing on Qemu.
> 
> However, the "l4shmnet" is not working correctly, both L4Linux display
> this message:

Maybe this is a memory issue? You assign 1GB to the machine but only
hand 64M to L4Linux (of which 32M are taken by the ramdisk).

Matthias

> shmns: Requesting, Shmsize 1024 Kbytes
> shmns: Failed to establish communication
>  
> Could someone help me building such a working configuration.
> 
> Is it possible to share a working Qemu command with the right option for
> the network?
> This is my Qemu command
> 
> $> qemu-system-arm -cpu cortex-a9 -M vexpress-a9 -smp 1 -no-reboot -m
> 1024M -kernel bin/arm_armv7a/bootstrap_L4Linux_ARM.elf -nographic -net
> nic,model=lan9118 -net user
> 
> Is it also possible to share a working lua configuration file?
> 
> This is my lua l4lx.cfg file:
> 
> -- vim:set ft=lua:
> 
> local lxname = "vmlinuz";
> if L4.Info.arch() == "arm" then
>   lxname = "vmlinuz.arm";
> end
> 
> local shmns = L4.default_loader:create_namespace({ shm = "placeholder" });
> 
> L4.default_loader:start(
>   {
>     { ldr_flags = L4.Ldr_flags.eager_map },
>     caps = {
>       log = L4.Env.log:m("rws"),
>     },
>     l4re_dbg = L4.Dbg.Warn,
>     log = { "l4linux", "yellow" },
> 
>     shmns = shmns:mode("rw"),
>   },
>   "rom/" .. lxname .. " earlyprintk=1 showpfexc=1 showghost=1 mem=64M
> l4shmnet.add=shmns,macpart=1,create console=ttyLv0 l4x_rd=rom/ramdisk-"
> ..  L4.Info.arch() .. ".rd root=1:0 ramdisk_size=32768 init=/li\
> nuxrc print-fatal-signals=1");
> 
> L4.default_loader:start(
>   {
>     { ldr_flags = L4.Ldr_flags.eager_map },
>     caps = {
>       log = L4.Env.log:m("rws"),
>     },
>     l4re_dbg = L4.Dbg.Warn,
>     log = { "l4linux2", "green" },
> 
>     shmns = shmns:mode("rw"),
>   },
>   "rom/" .. lxname .. " earlyprintk=1 showpfexc=1 showghost=1 mem=64M
> l4shmnet.add=shmns,macpart=2 console=ttyLv0 l4x_rd=rom/ramdisk-" .. 
> L4.Info.arch() .. ".rd root=1:0 ramdisk_size=32768 init=/linuxrc p\
> rint-fatal-signals=1");
> 
> 
> Thank you very much in advance.
> Best regards,
> 
> Mahdi
> 
> 
> [1] http://wiki.tudos.org/L4Linux/shmnet
> [2] http://os.inf.tu-dresden.de/pipermail/l4-hackers/2013/005775.html
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.