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".
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.
Any assistance on these two issues would be appreciated.
Thanks, Chris
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 demo.run 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 demo.run 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 demo.run script tries to include the USB support anyway.
We should fix this by adjusting the demo.run 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:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
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 'repos/libports/ports/libiconv.port'.
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)?
Cheers Norman