Using Genode 17.05 with Fiasco.OC

Norman Feske norman.feske at ...1...
Tue Jul 25 13:45:45 CEST 2017

Hi Jörg,

thank you for introducing yourself and for your interest in Genode!

> I started a month ago with Gnode hello tutorial and play around with them.
> Therefore, I call myself a newbie :-)
> But at the end, I will use Genode on my laptop (like turmvilla example) and
> start to develop some application on it :-). But first, I think about to
> start with a small server. The host provider that I use, use a QEMU with
> KVM enable as virtual server. So it is not possilbe to use NOVA on it
> because of the KVM enabled featuer (I think) but
> Fiasco.OC works.

We added the -no-kvm option in '<build-dir>/etc/build.conf' by default a
few years ago when Qemu/KVM did not implement all the features required
by NOVA. There should be a good chance that NOVA works with recent Qemu
versions. Could you give NOVA on Qemu/KVM another spin and report the
specific problem you encountered?

In general, I warmly recommend using NOVA over Fiasco.OC as NOVA is the
most commonly used (and thoroughly tested) Genode base platform on x86.

> The problem:
> So I try to build/create a image from the lighttpd example with Fiasco.OC
> kernel. The image started but the lighttpd does not work. Also the
> hello tutorial with Fiasco.OC does not work anymore.
> I checked the issue tracker on github but I didn't find any issue about
> that.
> What I figure out:
> - Hello tutorial
>  When I increase in the hello tutorial the "default caps" from 50 to 54
> in  the config, then the tutorial is working with Fiasco.OC kernel.

I think that this issue is fixed in the current master branch,
specifically by commit [1]. Prior this change, Genode's core consumed
one additional (dataspace) capability per RPC object when running on
Fiasco.OC, which remained undetected until we added the capability
accounting in 17.05.


> - lighttpd
>  Here I must first "move" the timer service in the config (see my commit
>  on github [1]) then it works with the NOVA kernel.

The position of the timer <start> node within the config should not make
any difference.

I just tried out the script with KERNEL=foc on x86_32. It
works when adding the '<default caps="100"/>' declaration. Opening
'http://localhost:5555/' in the web browser shows the "Hello Genode" page.

>  With Fiasco.OC I get
>  following error:
>  Error: nic_drv -> : environment ROM session denied (label="device_pd",
> ram_quota=6144, cap_quota=3, diag=0)
>  I try to add "device_pd" in the boot modules because it is missing in the
>  rom fs but device_pd is not compile for the Fiasco.OC, only for NOVA.
>  I found out following in:
>  genode-src/repos/os/src/drivers/platform/spec/x86/device_pd/
>  It looks like device_pd is only build for NOVA.

Admittedly, the log messages look a bit scary but this output is normal
on Fiasco.OC where the platform driver does not support device PDs
(IOMMU). We should probably dim the noise a bit. ;-)


Dr.-Ing. Norman Feske
Genode Labs ·

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

More information about the users mailing list