Recipes not working

Norman Feske norman.feske at ...1...
Fri Jan 20 10:34:16 CET 2017

Hi Chris,

On 19.01.2017 18:05, Chris Rothrock wrote:
> There are two recipes that I was able to successfully compile and run in
> Genode 16.08 that are no longer working with Genode 16.11 and was
> wondering if I could get assistance to make them work in this version. 
> The default make run/demo works fine for me but if I try using the make
> run/demo with the Nova kernel I get an error "Error: target
> 'drivers/usb' does not exist".  

we recently enabled the 'usb' spec value when using NOVA because USB is
supported on x86 (for a long time actually - we just missed to add the
spec value). The problem is that the script tries to
incorporate the USB support whenever it is available regardless of
whether USB is actually needed on the used platform.

E.g. on most ARM platform, user input is provided via a USB HID device.
Hence, on these platforms, the USB driver must be built. We used to
express this information by enabling the 'usb' spec value for such
platforms and equipped the script with conditional elements
like the following:

  lappend_if [have_spec usb]  build_components drivers/usb

On x86 (the platform where NOVA is used), the demo scenario does not
rely on USB HID but on the PS/2 driver. Hence, the USB support is not
needed. However, since we enabled the 'usb' spec now on all x86
platforms (including NOVA), the script tries to include the USB
support anyway.

We should fix this by adjusting the script to use a (not yet
existing) platform-specific 'need_spec usb' function, which would return
false on x86.

In the meanwhile, you may side-step the issue by enabling the
'dde_linux' repository (where the USB driver resides) in your build
configuration. Thereby, you allow the build system to build the driver
even if it actually remains unused.

> Also, I am trying to run the recipe for virtualbox (using Nova
> hypervisor) and this worked with Genode v16.08 but now I can't make this
> recipe.  The port libiconv is required but I get an error trying to
> prepare_port on this one (Error: Hash sum check for libiconv failed).  I
> also tried to update the hash (./tool/port/update_hash libiconv) but
> this didn't work.

The download of the libiconv source archive apparently failed. The
'prepare_port' tool checks the SHA hash sum of the downloade archive
against the known-good value contained in the ports file. In your case,
the value differs for some reason. Maybe you are using a web proxy /
filter that returns an error web page instead of the real archive? You
may try the following steps to investigate:

Download the archive manually:


Calculate the SHA hash for the file:

  sha1sum libiconv-1.14.tar.gz

In my (the good) case, I see the following output:

  be7d67e50d72ff067b2c0291311bc283add36965  libiconv-1.14.tar.gz

This output is consistent with the known-good value declared in

In your case, the hash seems to be different. If so, take a closer look
at the downloaded file, e.g. is it actually a tar archive or (as I
presume) a HTML page with an error messaage)?


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