Sharing one ethernet network device between two L4Linux instances

Mahdi Aichouch foxmehdi at gmail.com
Fri Oct 23 10:48:19 CEST 2015


Hello Matthias,

Thank you very much for your explanation.

Following your advice, I tried to set a direct access to a network device
for the first L4Linux instance.
However, when I run "ifconfig" command in L4Linux shell I don't get any
working eth0 configuration, the result is shown below:

- L4Linux on Qemu

/ # ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

I tested the "ifconfig" command an a Linux running the same Qemu
vexpress-a9 configuration and I get an eth0 configuration as shown below:

- Linux on Qemu:

/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56
          inet addr:192.168.50.1  Bcast:192.168.50.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:47

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


For the logs of L4Linux I can see that the IO server prints a warning
saying that "Service registration failed: 'l4lx' ".
Do you have an idea of what might be wrong.
My Lua and IO configuration files are given below after the L4Linux boot
logs.


l4linux | L4re_kernel main Hello world !
l4linux | ARGC=13
l4linux | ARGV=b1007e04
l4linux | ENVP=b1007e3c
l4linux | AUXP=b1007e40
l4linux |   arg: 'rom/vmlinuz.arm'
l4linux |   arg: 'earlyprintk=1'
l4linux |   arg: 'showpfexc=1'
l4linux |   arg: 'showghost=1'
l4linux |   arg: 'mem=64M'
l4linux |   arg: 'l4shmnet.add=shmns,macpart=1,create'
l4linux |   arg: 'console=ttyLv0'
l4linux |   arg: 'l4x_rd=rom/ramdisk-arm.rd'
l4linux |   arg: 'root=1:0'
l4linux |   arg: 'ramdisk_size=4000'
l4linux |   arg: 'init=/linuxrc'
l4linux |   arg: 'print-fatal-signals=1'
l4linux |   arg: 'ip=dhcp'
l4linux | l4re_kernel: Single_page_alloc_base::_alloc heap p= 0 addr =
b0100000
l4linux | Region maping: limits [0-bfffffff]
l4linux |  Area map:
l4linux |   [         0-       fff] -> flags=0
l4linux |  Region map:
l4linux |   [  affff000-  afffffff] -> (offs=0, ds=5000, flags=4)
l4linux |   [  b0000000-  b0019fff] -> (offs=0, ds=5000, flags=4)
l4linux |   [  b0020000-  b0026fff] -> (offs=0, ds=5000, flags=4)
l4linux |   [  b0100000-  b013ffff] -> (offs=0, ds=5000, flags=4)
l4linux |   [  b1000000-  b1007fff] -> (offs=0, ds=5000, flags=4)
l4linux |   [  b3000000-  b3000fff] -> (offs=0, ds=5000, flags=4)
l4linux | l4re_kernel -> Loader::start binary dataspace [phys @addr =
612d6000] size = [3c9498]
l4linux | l4re_kernel: Loader::start start file [C:11000]
CPU[0]: run(thread=4c, cpu=0 (1,0,24)
l4linux | l4re_kernel: Loader::start start thread [C:11000]
CPU[0]: run(thread=49, cpu=0 (1,0,24)
l4linux | l4re_kernel: Loader::loader_thread execute
l4linux | l4re_kernel: Loader::__start execute
l4linux | l4re_kernel::Elf_Loader::launch bin: 1
l4linux | l4re_kernel -> Elf_loader::launch binary dataspace [phys @addr =
612d6000] size = [3c9498]
l4linux | l4re_kernel: Loader::alloc_app_stack size = 1000 stack virtual
addr afff4000
l4linux | l4re_kernel: Loader::alloc_app_stack stack dataspace phys addr =
60451000 size = 1000
l4linux | Elf::load addr= (nil), interpreter= 0
l4linux | Phdr_load: map from file (attaching ro ELF text segment),
prog_attach_ds [paddr = 0xa8000000 (0xa8000000), offs 0, size 3960832 ,all
seg cow? 0]
l4linux | l4re_kernel: L4Re_app_model::alloc_ds dataspace phys @addr =
[b0201dfc] size = [b00113f8] flags 0
l4linux | Phdr_load: copy data section: prog_attach_ds [paddr = 0xa83c8000
(0xa83c8000), offs 3964928, size 8192, all seg cow? 0]
l4linux | Phdr_load: created dataspace phys addr = 0xb0201e54, size =
b00111cc
l4linux | Elf::load app model...done
l4linux | libio: Warning: Query of 'vbus' failed!
l4linux | PH  0 (t:        1) offs=00008000 vaddr=02000000 vend=02476414
l4linux |                     phys=02000000 ephys=02476414
l4linux |                     f_sz=003b039c memsz=00476414 flgs=rwx
l4linux | L4LINUX: Ma DBG: Virtual Address 02000000 End 02476414
l4linux |  Physical Address 02000000  End 02476414
IO      | Io service
copy on write for 6124f000 to 608cb000
IO      | Verboseness level: 4
IO      | unused physical memory space:
IO      |   [00000000000000-0000005fffffff]
IO      |   [00000070000000-000000ffffffff]
IO      | Loading: config 'rom/arm-ve-a9.io'
MOE: R[600ebe60]: refs=1
IO      | WARNING: Service registration failed: 'l4lx'
IO      | l4lx: [N12_GLOBAL__N_112Virtual_sbusE]
IO      |   Resources: ==== start ====
IO      |   Resources: ===== end =====
IO      |   L4ICU: [N2Vi6Sw_icuE]
IO      |     Resources: ==== start ====
IO      |     Resources: ===== end =====
IO      |   NIC: [N2Vi9Proxy_devE]
IO      |     Resources: ==== start ====
IO      |     IOMEM   [00000002000000-00000002ffffff 1000000] non-pref
(32bit) (align=ffffff flags=2)
IO      |     IRQ     [0000000000000f-0000000000000f 1] none (32bit)
(align=0 flags=1)
IO      |     Resources: ===== end =====
IO      | Real Hardware -----------------------------------
IO      | System Bus: hid=
IO      |   Resources: ==== start ====
IO      |   Resources: ===== end =====
IO      |   NIC: hid=smsc9118
IO      |     Clients: ===== start ====
IO      |       NIC: [N2Vi9Proxy_devE]
IO      |     Clients: ===== end ====
IO      |     Resources: ==== start ====
IO      |     IOMEM   [00000002000000-00000002ffffff 1000000] non-pref
(32bit) (align=ffffff flags=2)
IO      |     IRQ     [0000000000000f-0000000000000f 1] none (32bit)
(align=0 flags=1)
IO      |     Resources: ===== end =====
IO      | warning: could not register control interface at cap
'platform_ctl'
IO      | Ready. Waiting for request.
l4linux | PH  1 (t:        4) offs=00360490 vaddr=02358490 vend=023584b4
l4linux |                     phys=02358490 ephys=023584b4
l4linux |                     f_sz=00000024 memsz=00000024 flgs=r-x
l4linux | L4LINUX: Ma DBG: Virtual Address 02358490 End 023584b4
l4linux |  Physical Address 02358490  End 023584b4
l4linux | PH  2 (t: 1685382481) offs=00000000 vaddr=00000000 vend=00000000
l4linux |                     phys=00000000 ephys=00000000
l4linux |                     f_sz=00000000 memsz=00000000 flgs=rwx
l4linux | L4LINUX: Ma DBG: Virtual Address 00000000 End 00000000
l4linux |  Physical Address 00000000  End 00000000
l4linux | L4LINUX: Ma DBG: Starting binary at 0x2000360, argc=13
argv=0xafff4f64 *argv=0xb1007ff0 argv0=rom/vmlinuz.arm
l4linux | External resolver is at 0xa800075c
l4linux | ======> L4Linux starting... <========
l4linux | Linux version 3.16.0-l4 (aichouch at aichouch-ThinkCentre-M90) (gcc
version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29) )
#35 SMP Tue Oct 20 17:04:31 CEST 2015
l4linux | Binary name: rom/vmlinuz.arm
l4linux |    This is an AEABI build.
l4linux | Linux kernel command line (12 args): earlyprintk=1 showpfexc=1
showghost=1 mem=64M l4shmnet.add=shmns,macpart=1,create console=ttyLv0
l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 init=/linuxrc
print-fatal-signals=1 ip=dhcm
l4linux | CPU mapping (l:p)[1]: 0:0
l4linux | Image: 020000a0 - 02600000 [6143 KiB].
l4linux | Areas: Text:     020000a0 - 02384000 [3599kB] (a bit longer)
l4linux |        Data:     02384000 - 023abc20 [159kB]
l4linux |        Initdata: 02359000 - 02382900 [166kB]
l4linux |        BSS:      023b039c - 02476414 [792kB]
l4linux | Device scan:
l4linux | Device scan done.
l4linux | L4LINUX: Ma DBG: l4lx_thread_create: Created thread 413 (cpu0)
(u:b3000e00, v:b3000c00, sp:02385fa4)
l4linux | main thread will be 413
l4linux | l4x_register_pointer_section: addr = 02000000 size = 4681728
l4linux | section-with-init: Virt: 0x2000000 to 0x2476413 [4569 KiB]
l4linux | section-with-init: Phys: 0x60454000 to 0x608ca413, [4569 KiB]
CPU[0]: run(thread=54, cpu=0 (1,0,0)
l4linux | Main thread running, waiting...
l4linux | Main thread running, waiting...
l4linux | stext virt 020000a0, phys 604540a0
l4linux | etext virt 02384000, phys 607d8000
l4linux | L4x: Memory size: 64MB
l4linux | L4x: Setting superpages for main memory
l4linux | L4x: Adjusted memory start: 02000000
l4linux |     Main memory: Virt: 0x2600000 to 0x65fffff [65536 KiB]
l4linux |     Main memory: Phys: 0x61a00000 to 0x659fffff, [65536 KiB]
l4linux | l4x: vmalloc area: 06600000 - 0e600000
l4linux | l4x_register_pointer_section: addr = 02000000 size = 4681728
l4linux |            text: Virt: 0x2000000 to 0x2476413 [4569 KiB]
l4linux |            text: Phys: 0x60454000 to 0x608ca413, [4569 KiB]
l4linux | Booting Linux on physicl CPU 0x0
Linux version 3.16.0-l (aichouch at aichouch-Thinentre-M90) (gcc versionm
4.8.3 20140320 (prerelease) (Sourcery CodeBenc Lite 2014.05-29) ) #35 P
Tue Oct 20 17:04:31 CmEST 2015
CPU: Fiasco [410fc090]revision 0 (ARMv7), cr=0[000000
CPU: PIPT / VIPT nonalasing data cache, VIPT naliasing instruction camche
Machine: L4
Ignoring unrecognised ag 0x00000000
bootconsole [earlykdb0 enabled
Forcing write-allocatecache policy for SMP
Forcing shared mapping for SMP
Memory policy: Data cahe writealloc
Page fault: addr = bffff003 pc = 0235cb80 (rw, T)
l4linux | Forward PF to our pager
l4linux | Loading: rom/ramdisk-arm.rd
l4linux | INITRD: Size of RAMdisk is 3072KiB
l4linux | INITRD: 00002000 - 0030000
l4x_virt_to_phys: Could not translate virt. address 0x2000
l4linux | v2p: 0: v:00000000-00001000 p:00000000-00001000 sz:00001000
l4linux | v2p: 1: v:02000000-02476414 p:60454000-608ca414 sz:00476414
l4linux | v2p: 2: v:02600000-06600000 p:61a00000-65a00000 sz:04000000
l4linux | v2p: 3: v:02000000-02476414 p:60454000-608ca414 sz:00476414
l4linux | ------------[ cut here ------------
WARNING: CPU: 0 PID: 0at
/home/aichouch/dev/l4-snapshot-2014092821/srmc/l4linux/arch/l4/kernel/main.c:392
l4x_virt_tophys+0x7c/0xac()
Modules linked in:
CPU: 0 PID: 0 Comm: swpper Not tainted 3.16.0-[4 #35
[<02010164>] (unwind_bcktrace) from [<02006ee4[] (show_stack+0x10/0x14)m
[<02006ee4>] (show_stak) from [<022811d4>] (du_stack+0x84/0x94)
[<022811d4>] (dump_stak) from [<02020c14>]
(wa_slowpath_common+0x6c/0mx88)
[<02020c14>] (warn_slopath_common) from [<0202cc>]
(warn_slowpath_nulml+0x1c/0x24)
[<02020ccc>] (warn_slopath_null) from [<020021[8>]
(l4x_virt_to_phys+0xm7c/0xac)
[<02002168>] (l4x_virtto_phys) from [<0235bf4c[]
(l4x_load_initrd+0x208m/0x240)
[<0235bf4c>] (l4x_loadinitrd) from [<0235d860>[ (setup_arch+0x89c/0x8d4m)
[<0235d860>] (setup_arh) from [<023595c8>] (stt_kernel+0x8c/0x370)
[<023595c8>] (start_kenel) from [<00000000>] ([ (null))
---[ end trace 3406ff2bd97382e ]---
l4x_virt_to_phys: Could not translate virt. address 0x302000
l4linux | v2p: 0: v:00000000-00001000 p:00000000-00001000 sz:00001000
l4linux | v2p: 1: v:02000000-02476414 p:60454000-608ca414 sz:00476414
l4linux | v2p: 2: v:02600000-06600000 p:61a00000-65a00000 sz:04000000
l4linux | v2p: 3: v:02000000-02476414 p:60454000-608ca414 sz:00476414
l4linux | ------------[ cut here ------------
WARNING: CPU: 0 PID: 0at
/home/aichouch/dev/l4-snapshot-2014092821/srmc/l4linux/arch/l4/kernel/main.c:392
l4x_virt_tophys+0x7c/0xac()
Modules linked in:
CPU: 0 PID: 0 Comm: swpper Tainted: G        W[    3.16.0-l4 #35
[<02010164>] (unwind_bcktrace) from [<02006ee4[] (show_stack+0x10/0x14)m
[<02006ee4>] (show_stak) from [<022811d4>] (du_stack+0x84/0x94)
[<022811d4>] (dump_stak) from [<02020c14>]
(wa_slowpath_common+0x6c/0mx88)
[<02020c14>] (warn_slopath_common) from [<0202cc>]
(warn_slowpath_nulml+0x1c/0x24)
[<02020ccc>] (warn_slopath_null) from [<020021[8>]
(l4x_virt_to_phys+0xm7c/0xac)
[<02002168>] (l4x_virtto_phys) from [<0235bf58[]
(l4x_load_initrd+0x214m/0x240)
[<0235bf58>] (l4x_loadinitrd) from [<0235d860>[ (setup_arch+0x89c/0x8d4m)
[<0235d860>] (setup_arh) from [<023595c8>] (stt_kernel+0x8c/0x370)
[<023595c8>] (start_kenel) from [<00000000>] ([ (null))
---[ end trace 3406ff2bd97382f ]---
RAMdisk from 00002000 (00002000) to 00302000 (00302000) [3072KiB]
l4linux | PERCPU: Embedded 7 page/cpu @06521000 s6400 r81[2 d14080 u32768
Built 1 zonelists in Zne order, mobility groupg on.  Total pages: 177m16
Kernel command line: erlyprintk=1 showpfexc=1 owghost=1 mem=64M
l4shmmnet.add=shmns,macpart=1,create console=ttyLv0
lx_rd=rom/ramdisk-arm.rd ot=1:0 ramdisk_size=400m0 init=/linuxrc
print-fatal-signals=1 ip=dhcp
l4shmnet: unknown arguent: create
L4LINUX CEA version PI hash table entries: 512[(order: -1, 2048 bytes)
Dentry cache hash tabl entries: 16384 (order: [, 65536 bytes)
Inode-cache hash tableentries: 8192 (order: 3,[32768 bytes)
Memory: 64776K/71680K vailable (2681K kernel ce, 159K rwdata, 744K
romdata, 166K init, 792K bss, 6904K reserved)
Virtual kernel memory ayout:
    vector  : 0xbffff00 - 0xc0000000   (   4 k[)
    fixmap  : 0xffc0000 - 0xffe00000   (2048 k[)
    vmalloc : 0x0660000 - 0x0e600000   ( 128 M[)
    lowmem  : 0x0000000 - 0x06600000   ( 102 M[)
    modules : 0x0101000 - 0x02000000   (  15 M[)
      .text : 0x0200000 - 0x023584b4   (3426 k[)
      .init : 0x0235900 - 0x02382900   ( 167 k[)
      .data : 0x0238400 - 0x023abc20   ( 160 k[)
       .bss : 0x023b03c - 0x02476414   ( 793 k[)
Hierarchical RCU impleentation.
l4linux RCU restricting CPUs rom NR_CPUS=4 to nr_cpu_s=1.
RCU: Adjusting geometr for rcu_fanout_leaf=16,r_cpu_ids=1
NR_IRQS:220
l4timer: Using IRQ210
KERNEL: Ma DBG: Context constructor
KERNEL: Ma DBG: Thread ARM constructor VA=0xf1175000 Physical
Address=0x6fd75000
KERNEL: Ma DBG:  thread_object: sys_control: result 0
L4LINUX: Ma DBG: l4lx_thread_create: Created thread 419 (timer0)
(u:b3000a00, v:00000000, sp:0240dfa0)
CPU[0]: run(thread=59, cpu=0 (1,0,0)
KERNEL: Ma DBG: KERNEL-268396848: thread-arm::user_invoke()
l4linux | sched_clock: 64 bits at1000kHz, resolution 1000, wraps every
214748364m8000ns
Console: colour dummy evice 80x30
console [ttyLv0] enabled
console [ttyLv0] enabld
bootconsole [earlykdb0] disabled
bootconsole [earlykdb0 disabled
Calibrating delay loop... 523.46 BogoMIPS (lpj=2617344)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x2286740 - 0x2286740
Brought up 1 CPUs
SMP: Total of 1 processors activated.
CPU: All CPU(s) started in SVC mode.
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
Switched to clocksource l4kipclk
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an
initrd
INITRD: Freeing memory.
l4x: Checks passed.
NetWinder Floating Point Emulator V0.97 (double precision)
futex hash table entries: 256 (order: 2, 16384 bytes)
msgmni has been set to 126
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
L4 serial driver
ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4
l4ser_shm: L4 shared mem serial driver
l4cdds: No name given, not starting.
brd: module loaded
l4bdds: No name given, not starting.
shmns: Requesting, Shmsize 1024 Kbytes
shmns: Failed to establish communication
mousedev: PS/2 mouse device common for all mice
TCP: cubic registered
NET: Registered protocol family 17
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 3072KiB [1 disk] into ram disk... done.
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
Freeing unused kernel memory: 164K (02359000 - 02382000)
Please press Enter to activate this console.


- lua configuration file:

-- vim:set ft=lua:

loader       = L4.default_loader;
vbus_l4linux = loader:new_channel();

local lxname = "vmlinuz";
if L4.Info.arch() == "arm" then
  lxname = "vmlinuz.arm";
end

local shmns = L4.default_loader:create_namespace({ shm = "placeholder" });

loader:start(
{
        caps = {
                sigma0 = L4.cast(L4.Proto.Factory,
L4.Env.sigma0):create(L4.Proto.Sigma0);
                icu = L4.Env.icu;
                l4linux = vbus_l4linux:svr();
                },

        log = { "IO", "y" },

        l4re_dbg = L4.Dbg.Warn,
},
"rom/io -vvv rom/arm-ve-a9.io");

L4.default_loader:start(
  {
    { ldr_flags = L4.Ldr_flags.pinned_segs, 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=4000 init=/lin\
uxrc print-fatal-signals=1 ip=dhcp");


- IO server configuration file:

hw-root
{
  NIC => new Device()
  {
    .hid = "smsc9118";
    new-res Mmio(0x02000000 .. 0x02FFFFFF);
    new-res Irq(15);
  }
}

l4lx => new System_bus()
{
  NIC => wrap(hw-root.NIC);
}


*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.*

Regarding the setting of a virtual network connection and iptables, could
you please share a document or some instructions that explain how to setup
such a working configuration.

Regarding the use of the "cons multiplexer", if I understood correctly I
should use it instead of "l4shmns" service, right?
If yes, do I have to disable the support of "l4shmns" option in L4Linux and
remove all configuration from my Lua configuration file?

Could you please share a document or some instructions that explain how to
use the "cons multiplexer".

Thank you very much for your help.

Best regards,

Mahdi






On Thu, Oct 22, 2015 at 10:28 AM, Matthias Lange <
matthias.lange at kernkonzept.com> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20151023/221e1198/attachment-0001.html>


More information about the l4-hackers mailing list