Greetings, I'm experimenting with Genode/NOVA on x64 for some embedded work, version 16.08 building on Ubuntu 16.04.
I'm trying to assemble a minimal (headless) platform with TCP/IP and USB support. The idea is to run a single custom control application on the platform. If anyone has a schema/scenario that is close to this pattern they'd care to share I'd be very grateful. But by way of getting underway ...
I started with netperf_lxip as this does have the network stack and USB but I get this:
$ ./tool/ports/prepare_port nova $ ./tool/create_builddir nova_x86_64 BUILD_DIR=build.nova $ make -C build.nova run/netperf_lxip
make: Entering directory '/home/jevans/src/genode/build.nova' including /home/jevans/src/genode/tool/run/boot_dir/nova including /home/jevans/src/genode/tool/run/power_on/qemu including /home/jevans/src/genode/tool/run/log/qemu including /home/jevans/src/genode/tool/run/image/iso including /home/jevans/src/genode/repos/ports/run/netperf_lxip.run
Netperf running on Qemu is not recommended.
make: Leaving directory '/home/jevans/src/genode/build.nova'
and no build outputs whatsoever. Any thoughts on this?
Lighttpd _does_ build out of the box and appears to run OK under QEMU but if I boot the image in VMWare I get
Promisc is off Bender: Hello World. Need 0067b000 bytes to relocate modules. Relocating to 07965000: Copying 6651920 bytes... Copying 138968 bytes...
And the VM then locks before the
'NOVA Microhypervisor v7-4d6f04d (x86_64): Dec 2 2016 17:01:35 [gcc 4.9.2]' banner appears.
Once again any thoughts on how to proceed here much appreciated.
Genode and friends are a pretty marvellous resource. Many thanks.
BR,
Jerry.
Hi Jerry,
welcome to the mailing list and thanks for giving Genode a try!
including /home/jevans/src/genode/repos/ports/run/netperf_lxip.run
Netperf running on Qemu is not recommended.
make: Leaving directory '/home/jevans/src/genode/build.nova'
and no build outputs whatsoever. Any thoughts on this?
this message is an assertion that we put in to prevent our automated tests to exercise the netperf benchmarks on Qemu (we execute those on real hardware only). However, you can manually override this assertion. Please have a look at 'ports/run/netperf.inc', which is implicitly used by the 'netperf_lxip.run' script you executed. Right at the beginning of the file, it states:
# setting environment variable FORCE_QEMU permits running netperf in qemu
Could you give it a try?
And the VM then locks before the
'NOVA Microhypervisor v7-4d6f04d (x86_64): Dec 2 2016 17:01:35 [gcc 4.9.2]' banner appears.
Unfortunately, I am unable to help out since I am unfamiliar with VMware. Just out of curiosity, have you tried booting any of the other kernels (e.g., hw_x86_64, sel4_x86_32) in VMware?
Cheers Norman
Hello Norman
this message is an assertion that we put in to prevent our automated tests
to
exercise the netperf benchmarks on Qemu (we execute those on real hardware only). However, you can manually override this assertion. Please have a look at 'ports/run/netperf.inc', which is implicitly used by
the
'netperf_lxip.run' script you executed. ... # setting environment variable FORCE_QEMU permits running netperf in qemu
Got it. Thanks.
Unfortunately, I am unable to help out since I am unfamiliar with VMware.
No problem, my mistake here. QEMU is piping serial to the console automatically, the VMWare instance was _not_. When configured correctly, the Genode stack looks to be running correctly.
1 more question at this juncture. Lighttpd seems hardwired to 10.0.2.55. I can see how the host IP is set in the netperf scenario, how do I modify for Lighttpd?
Just out of curiosity, have you tried booting any of the other kernels
(e.g.,
hw_x86_64, sel4_x86_32) in VMware?
I've only experimented with NOVA so far. The Seoul-fancy scenario, for example, boots and runs from the generated ISO on VMWare. The UI manager appears but I cannot get any of the consoles to run. Dosbox works as expected.
Thanks again.
Jerry.
Hello Jerry,
1 more question at this juncture. Lighttpd seems hardwired to 10.0.2.55. I can see how the host IP is set in the netperf scenario, how do I modify for Lighttpd?
you can add static IP settings to the <libc> config node of lighttpd, for example:
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log" ip_addr="10.0.1.2" gateway="10.0.1.5" netmask="255.255.255.0"> ... </libc>
If no such configuration is specified (as in the 'lighttpd.run' script), the TCP/IP stack issues a DHCP request to obtain this information. The IP address 10.0.2.55 that you see is actually not hard-wired in the Genode scenario but the response from Qemu's built-in DHCP server.
I've only experimented with NOVA so far. The Seoul-fancy scenario, for example, boots and runs from the generated ISO on VMWare. The UI manager appears but I cannot get any of the consoles to run. Dosbox works as expected.
Seoul relies in hardware virtualization support (VT). To run the scenario inside a virtual machine, you need to make sure that your virtual machine supports nested virtualization well. Alternatively, you may try booting the image on a real machine. The easiest way is to dump the ISO image to an USB stick via 'dd', and boot the machine from the USB stick.
Cheers Norman
Hello Norman
you can add static IP settings to the <libc> config node of lighttpd, for example:
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log" ip_addr="10.0.1.2" gateway="10.0.1.5" netmask="255.255.255.0"> ...
</libc>
Got it and I'll come back to this as I seem to be having more fundamental problems.
Seoul relies in hardware virtualization support (VT). To run the scenario
inside
a virtual machine, you need to make sure that your virtual machine
supports
nested virtualization well. Alternatively, you may try booting the image
on a
real machine. The easiest way is to dump the ISO image to an USB stick via 'dd', and boot the machine from the USB stick.
Yes, this make sense. See my next set of questions :)
Thanks again.