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