Sharing one ethernet network device between two L4Linux instances
Matthias Lange
matthias.lange at kernkonzept.com
Thu Oct 22 10:28:50 CEST 2015
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
More information about the l4-hackers
mailing list