Discussion:
Help testing arora,qt5 and sdl examples on RaspberryPI
Reinier Millo Sánchez
2014-09-05 03:30:17 UTC
Permalink
Hi
I'm testing some examples of Genode on RaspberryPI, but i got some
troubles. I'm trying to test arora, qt5 and sdl examples. I'm using
Genode 14.05. I have configured the following ports:

./tool/ports/prepare_port arora
./tool/ports/prepare_port dde-linux
./tool/ports/prepare_port libc
./tool/ports/prepare_port stdcxx
./tool/ports/prepare_port mesa
./tool/ports/prepare_port zlib
./tool/ports/prepare_port icu
./tool/ports/prepare_port jpeg
./tool/ports/prepare_port libpng
./tool/ports/prepare_port openssl
./tool/ports/prepare_port freetype
./tool/ports/prepare_port lwip
./tool/ports/prepare_port qoost
./tool/ports/prepare_port bintuils
./tool/ports/prepare_port sdl
make prepare PKG=qt5 (on libports)

On etc/build.conf have activated the following repositories:

REPOSITORIES += $(GENODE_DIR)/repos/base-hw
REPOSITORIES += $(GENODE_DIR)/repos/base
REPOSITORIES += $(GENODE_DIR)/repos/os
REPOSITORIES += $(GENODE_DIR)/repos/demo
REPOSITORIES += $(GENODE_DIR)/repos/libports
REPOSITORIES += $(GENODE_DIR)/repos/ports
REPOSITORIES += $(GENODE_DIR)/repos/dde_linux
REPOSITORIES += $(GENODE_DIR)/repos/gems

To compile the example have used the following command lines:

make run/arora
make run/qt5
make run/sdl

During the compilation process of the examples, get this line, but
finally the elf image is generated:

/usr/local/genode-gcc/bin/genode-arm-ld: BFD (GNU Binutils) 2.22
assertion fail ../../../../contrib/binutils-2.22/bfd/elf32-arm.c:12049

To generate the img file from the elf image have used:

/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/arora/image.elf genode_arora.img
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/qt5/image.elf genode_qt5.img
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/sdl/image.elf genode_sdl.img

To test this img on the RPI have created the config.txt file with:

kernel=<file>.img
kernel_address=0x00800000

To test the examples i'm using a RPI model B and a version of QEMU with
functional support for RPI:

https://github.com/Torlus/qemu/

When test the elf images with QEMU get the output on serial console, but
this version of QEMU seems like don't support framebuffer emulation.
After that have tried to run examples on the real PI but only get the
coloured screen.
I have compiled and tested on th RPI the Demo and Hello examples.
If somebody can help me?
Best regards
--
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas
Stefan Kalkowski
2014-09-05 06:58:59 UTC
Permalink
Hello,
Post by Reinier Millo Sánchez
Hi
I'm testing some examples of Genode on RaspberryPI, but i got some
troubles. I'm trying to test arora, qt5 and sdl examples. I'm using
./tool/ports/prepare_port arora
./tool/ports/prepare_port dde-linux
./tool/ports/prepare_port libc
./tool/ports/prepare_port stdcxx
./tool/ports/prepare_port mesa
./tool/ports/prepare_port zlib
./tool/ports/prepare_port icu
./tool/ports/prepare_port jpeg
./tool/ports/prepare_port libpng
./tool/ports/prepare_port openssl
./tool/ports/prepare_port freetype
./tool/ports/prepare_port lwip
./tool/ports/prepare_port qoost
./tool/ports/prepare_port bintuils
./tool/ports/prepare_port sdl
make prepare PKG=qt5 (on libports)
REPOSITORIES += $(GENODE_DIR)/repos/base-hw
REPOSITORIES += $(GENODE_DIR)/repos/base
REPOSITORIES += $(GENODE_DIR)/repos/os
REPOSITORIES += $(GENODE_DIR)/repos/demo
REPOSITORIES += $(GENODE_DIR)/repos/libports
REPOSITORIES += $(GENODE_DIR)/repos/ports
REPOSITORIES += $(GENODE_DIR)/repos/dde_linux
REPOSITORIES += $(GENODE_DIR)/repos/gems
make run/arora
make run/qt5
make run/sdl
During the compilation process of the examples, get this line, but
/usr/local/genode-gcc/bin/genode-arm-ld: BFD (GNU Binutils) 2.22
assertion fail ../../../../contrib/binutils-2.22/bfd/elf32-arm.c:12049
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/arora/image.elf genode_arora.img
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/qt5/image.elf genode_qt5.img
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/sdl/image.elf genode_sdl.img
kernel=<file>.img
kernel_address=0x00800000
To test the examples i'm using a RPI model B and a version of QEMU with
https://github.com/Torlus/qemu/
When test the elf images with QEMU get the output on serial console, but
this version of QEMU seems like don't support framebuffer emulation.
After that have tried to run examples on the real PI but only get the
coloured screen.
I have compiled and tested on th RPI the Demo and Hello examples.
If somebody can help me?
Best regards
Thank you very much for the provided information. I really appreciate
the degree of detailing in your post, so one can reproduce all steps.

Unfortunately, the Rasperry Pi support was broken in release 14.05. We
got aware of that fact at the end of July by a post on this list. Now,
we nightly test the Rasperry Pi platform, and things should work
properly. Please, switch to Genode's release 14.08. I'm afraid you'll
have to do some of the prepare steps again, but the build system will
warn you if this is the case. Also, please assure to do a 'make
cleanall' in your build directory after the upgrade, before you proceed
again.

Regards
Stefan

PS: I'm sorry, I've missed your previous mails about building for
Rasperry Pi, otherwise I would have warned you earlier
Post by Reinier Millo Sánchez
--
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ · http://genode.org/
Reinier Millo Sánchez
2014-09-05 15:24:45 UTC
Permalink
Hi Stefan
I have switched to Genode's release 14.08, prepared again the ports and
compiled the examples in the same way, but when try to test it on RPI,
only the colored screen again.
Someone have tested successfully this examples on RPI hardware? I have
tested successfully the Demo example.

Best regards
Post by Stefan Kalkowski
Hello,
Post by Reinier Millo Sánchez
Hi
I'm testing some examples of Genode on RaspberryPI, but i got some
troubles. I'm trying to test arora, qt5 and sdl examples. I'm using
./tool/ports/prepare_port arora
./tool/ports/prepare_port dde-linux
./tool/ports/prepare_port libc
./tool/ports/prepare_port stdcxx
./tool/ports/prepare_port mesa
./tool/ports/prepare_port zlib
./tool/ports/prepare_port icu
./tool/ports/prepare_port jpeg
./tool/ports/prepare_port libpng
./tool/ports/prepare_port openssl
./tool/ports/prepare_port freetype
./tool/ports/prepare_port lwip
./tool/ports/prepare_port qoost
./tool/ports/prepare_port bintuils
./tool/ports/prepare_port sdl
make prepare PKG=qt5 (on libports)
REPOSITORIES += $(GENODE_DIR)/repos/base-hw
REPOSITORIES += $(GENODE_DIR)/repos/base
REPOSITORIES += $(GENODE_DIR)/repos/os
REPOSITORIES += $(GENODE_DIR)/repos/demo
REPOSITORIES += $(GENODE_DIR)/repos/libports
REPOSITORIES += $(GENODE_DIR)/repos/ports
REPOSITORIES += $(GENODE_DIR)/repos/dde_linux
REPOSITORIES += $(GENODE_DIR)/repos/gems
make run/arora
make run/qt5
make run/sdl
During the compilation process of the examples, get this line, but
/usr/local/genode-gcc/bin/genode-arm-ld: BFD (GNU Binutils) 2.22
assertion fail ../../../../contrib/binutils-2.22/bfd/elf32-arm.c:12049
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/arora/image.elf genode_arora.img
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/qt5/image.elf genode_qt5.img
/usr/local/genode-gcc/bin/genode-arm-objcopy -Obinary
var/run/sdl/image.elf genode_sdl.img
kernel=<file>.img
kernel_address=0x00800000
To test the examples i'm using a RPI model B and a version of QEMU with
https://github.com/Torlus/qemu/
When test the elf images with QEMU get the output on serial console, but
this version of QEMU seems like don't support framebuffer emulation.
After that have tried to run examples on the real PI but only get the
coloured screen.
I have compiled and tested on th RPI the Demo and Hello examples.
If somebody can help me?
Best regards
Thank you very much for the provided information. I really appreciate
the degree of detailing in your post, so one can reproduce all steps.
Unfortunately, the Rasperry Pi support was broken in release 14.05. We
got aware of that fact at the end of July by a post on this list. Now,
we nightly test the Rasperry Pi platform, and things should work
properly. Please, switch to Genode's release 14.08. I'm afraid you'll
have to do some of the prepare steps again, but the build system will
warn you if this is the case. Also, please assure to do a 'make
cleanall' in your build directory after the upgrade, before you proceed
again.
Regards
Stefan
PS: I'm sorry, I've missed your previous mails about building for
Rasperry Pi, otherwise I would have warned you earlier
Post by Reinier Millo Sánchez
--
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas
Norman Feske
2014-09-05 18:58:33 UTC
Permalink
Hello Reinier,
Post by Reinier Millo Sánchez
I have switched to Genode's release 14.08, prepared again the ports and
compiled the examples in the same way, but when try to test it on RPI,
only the colored screen again.
Someone have tested successfully this examples on RPI hardware? I have
tested successfully the Demo example.
the SDL and Qt5 examples are indeed not expected to work on the
Raspberry Pi out of the box. Most run scripts still lack two things that
are important for the RPi, namely the platform driver and the USB HID
driver. Those components are included in the 'os/run/demo.run' script
but are lacking in many others such as the 'libports/run/sdl.run'.
However, you should still get serial output in any case. Normally, the
serial output gives enough indications about the missing pieces. Given
the demo.run script as example, complementing the other run scripts with
the missing pieces should be straight forward.

Has the switch to version 14.08 resolved the build problem?

As another heads-up warning regarding the Rpi, the USB driver is still
not perfect. There are two issues. First, the keyboard is not working
reliably unless you set the number of used host channels to 8 instead of
2 using the 'dwc_param_host_channels_default' define in
<genode-dir>/contrib/dde_linux-<hash>/src/lib/dde_linux/drivers/usb/host/dwc_otg/dwc_otg_core_if.h.
Second, the USB driver draws an enormous amount of CPU time because it
has to issue USB start-of-frame (SOF) transactions every microframe
(that is every 250 microseconds). So when the USB driver is running,
there is hardly any CPU time left for the other processes. On Linux,
this problem has been somehow fixed by the so-called FIQ optimization. I
am still pondering about the best way to relieve this issue when using
the base-hw kernel.

Best regards
Norman
--
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Reinier Millo Sánchez
2014-09-05 19:46:15 UTC
Permalink
Hi Norman
That's right, this is the problem on Arora, QT5, and SDL examples

[init] fb_drv: no route to service "Platform"
[init] usb_drv: no route to service "Platform"

now I'm checking the platform driver and USB HID at the run scripts. I'm
emulating the examples on QEMU to get the serial output. I have switched
to Genode 14.08, but now in 14.08 the Demo example don't run on the real
harware. I have tested successfully the Demo example from Genode 14.05,
i'm goint to check the main difference between versions to try catch the
problem.
Best regards
Post by Norman Feske
Hello Reinier,
Post by Reinier Millo Sánchez
I have switched to Genode's release 14.08, prepared again the ports and
compiled the examples in the same way, but when try to test it on RPI,
only the colored screen again.
Someone have tested successfully this examples on RPI hardware? I have
tested successfully the Demo example.
the SDL and Qt5 examples are indeed not expected to work on the
Raspberry Pi out of the box. Most run scripts still lack two things that
are important for the RPi, namely the platform driver and the USB HID
driver. Those components are included in the 'os/run/demo.run' script
but are lacking in many others such as the 'libports/run/sdl.run'.
However, you should still get serial output in any case. Normally, the
serial output gives enough indications about the missing pieces. Given
the demo.run script as example, complementing the other run scripts with
the missing pieces should be straight forward.
Has the switch to version 14.08 resolved the build problem?
As another heads-up warning regarding the Rpi, the USB driver is still
not perfect. There are two issues. First, the keyboard is not working
reliably unless you set the number of used host channels to 8 instead of
2 using the 'dwc_param_host_channels_default' define in
<genode-dir>/contrib/dde_linux-<hash>/src/lib/dde_linux/drivers/usb/host/dwc_otg/dwc_otg_core_if.h.
Second, the USB driver draws an enormous amount of CPU time because it
has to issue USB start-of-frame (SOF) transactions every microframe
(that is every 250 microseconds). So when the USB driver is running,
there is hardly any CPU time left for the other processes. On Linux,
this problem has been somehow fixed by the so-called FIQ optimization. I
am still pondering about the best way to relieve this issue when using
the base-hw kernel.
Best regards
Norman
--
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas
Reinier Millo Sánchez
2014-09-08 19:45:07 UTC
Permalink
Hi Norman
Trying to test the Arora example on RaspberryPI. I have compiled it for
hw_rpi, when try to run Arora get this serial output, like you have told
me about the Platform service:

Genode 14.08
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 166 MB to init
int main(): --- init created, waiting for exit condition ---
[init -> fb_drv] --- fb_drv started ---
[init] fb_drv: no route to service "Platform"
[init -> fb_drv] C++ runtime: Genode::Parent::Service_denied
[init -> fb_drv] void* abort(): abort called
[init -> usb_drv] Services::Services(): No <storage> config node
found - not starting the USB Storage (Block) service
[init -> usb_drv] Enabled UHCI (USB 1.0/1.1) support
[init -> usb_drv] Enabled EHCI (USB 2.0) support
[init] usb_drv: no route to service "Platform"
[init -> usb_drv] C++ runtime: Genode::Parent::Service_denied
[init -> usb_drv] void* abort(): abort called
[init -> arora] tar archive 'qt5_fs_arora.tar' local at 230000, size
is 503808
[init -> arora] void init_libc_lock_pipe(): init_libc_lock_pipe()
[init -> arora] using the pipe libc plugin
[init -> arora] void init_nic_dhcp(): init_nic_dhcp()
[init -> arora] Using DHCP for interface configuration.
[init -> arora] {anonymous}::Plugin::Plugin(): using the lwIP libc
plugin

After that i have modified the arora.run script based on demo.run to
support the service Platform, this is a patch version of the changes:

diff --git a/repos/ports/run/arora.run b/repos/ports/run/arora.run
index c229bd6..a4a7207 100644
--- a/repos/ports/run/arora.run
+++ b/repos/ports/run/arora.run
@@ -9,10 +9,14 @@ set feature(Nic) 1
set build_components [qt5_build_components feature]

append build_components {
+ drivers/input
server/loader server/tar_rom server/nit_fb app/launchpad
test/nitpicker
app/arora
}

+lappend_if [have_spec gpio] build_components drivers/gpio
+lappend_if [have_spec platform_rpi] build_components drivers/platform
+
build $build_components

create_boot_directory
@@ -44,6 +48,13 @@ append config {

append config [qt5_start_nodes feature]

+append_if [have_spec platform_rpi] config {
+ <start name="platform_drv">
+ <resource name="RAM" quantum="1M"/>
+ <provides><service name="Platform"/></provides>
+ <config/>
+ </start>}
+
append config {
<start name="loader">
<resource name="RAM" quantum="2M"/>
@@ -131,6 +142,8 @@ if {[have_spec qt4_deprecated]} {
}
}

+lappend_if [have_spec platform_rpi] boot_modules platform_drv
+
build_boot_image $boot_modules

append qemu_args " -m 512 "

When try to run the Arora example get the framebuffer initialized but
don't start the arora browser on the framebuffer, this is the serial output:

Genode 14.08
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 165 MB to init
int main(): --- init created, waiting for exit condition ---
[init -> fb_drv] --- fb_drv started ---
[init -> platform_drv] --- Raspberry Pi platform driver ---
[init -> usb_drv] Services::Services(): No <storage> config node
found - not starting the USB Storage (Block) service
[init -> usb_drv] Enabled UHCI (USB 1.0/1.1) support
[init -> usb_drv] Enabled EHCI (USB 2.0) support
[init -> usb_drv] Using configured mac: 2e:60:90:0c:4e:01
[init -> usb_drv] dev_info: DWC OTG Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus
number 1
[init -> usb_drv] dev_info: irq 17, io mem 0x00000000
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 1 port detected
[init -> nitpicker] create session with args: label="wm",
ram_quota=28672
[init -> nitpicker] create session with args: label="pointer",
ram_quota=28672
[init -> nitpicker] create session with args: label="wm ->
decorator", ram_quota=28672
[init -> arora] tar archive 'qt5_fs_arora.tar' local at 230000, size
is 503808
[init -> arora] void init_libc_lock_pipe(): init_libc_lock_pipe()
[init -> arora] using the pipe libc plugin
[init -> arora] void init_nic_dhcp(): init_nic_dhcp()
[init -> arora] Using DHCP for interface configuration.
[init -> arora] {anonymous}::Plugin::Plugin(): using the lwIP libc
plugin

I think that "No <storage> config node found ..." should not be causing
the problem running the Arora browser.
Any ideas or suggestions?

Best regards
Post by Norman Feske
Hello Reinier,
Post by Reinier Millo Sánchez
I have switched to Genode's release 14.08, prepared again the ports and
compiled the examples in the same way, but when try to test it on RPI,
only the colored screen again.
Someone have tested successfully this examples on RPI hardware? I have
tested successfully the Demo example.
the SDL and Qt5 examples are indeed not expected to work on the
Raspberry Pi out of the box. Most run scripts still lack two things that
are important for the RPi, namely the platform driver and the USB HID
driver. Those components are included in the 'os/run/demo.run' script
but are lacking in many others such as the 'libports/run/sdl.run'.
However, you should still get serial output in any case. Normally, the
serial output gives enough indications about the missing pieces. Given
the demo.run script as example, complementing the other run scripts with
the missing pieces should be straight forward.
Has the switch to version 14.08 resolved the build problem?
As another heads-up warning regarding the Rpi, the USB driver is still
not perfect. There are two issues. First, the keyboard is not working
reliably unless you set the number of used host channels to 8 instead of
2 using the 'dwc_param_host_channels_default' define in
<genode-dir>/contrib/dde_linux-<hash>/src/lib/dde_linux/drivers/usb/host/dwc_otg/dwc_otg_core_if.h.
Second, the USB driver draws an enormous amount of CPU time because it
has to issue USB start-of-frame (SOF) transactions every microframe
(that is every 250 microseconds). So when the USB driver is running,
there is hardly any CPU time left for the other processes. On Linux,
this problem has been somehow fixed by the so-called FIQ optimization. I
am still pondering about the best way to relieve this issue when using
the base-hw kernel.
Best regards
Norman
--
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas

"antes de discutir ... respira;
antes de hablar ... escucha;
antes de escribir ... piensa;
antes de herir ... siente;
antes de rendirte ... intenta;
antes de morir ... vive"
Norman Feske
2014-09-09 20:11:09 UTC
Permalink
Hi Reinier,
Post by Reinier Millo Sánchez
After that i have modified the arora.run script based on demo.run to
diff --git a/repos/ports/run/arora.run b/repos/ports/run/arora.run
index c229bd6..a4a7207 100644
--- a/repos/ports/run/arora.run
+++ b/repos/ports/run/arora.run
@@ -9,10 +9,14 @@ set feature(Nic) 1
set build_components [qt5_build_components feature]
append build_components {
+ drivers/input
this line is not needed because on the Rpi, the "Input" service is
provided by the USB driver.
Post by Reinier Millo Sánchez
server/loader server/tar_rom server/nit_fb app/launchpad
test/nitpicker
app/arora
}
+lappend_if [have_spec gpio] build_components drivers/gpio
This line can be omitted because the Rpi platform does not enable the
"gpio" spec value anyway. But it does not do harm either.
Post by Reinier Millo Sánchez
+lappend_if [have_spec platform_rpi] build_components drivers/platform
+
build $build_components
create_boot_directory
@@ -44,6 +48,13 @@ append config {
append config [qt5_start_nodes feature]
+append_if [have_spec platform_rpi] config {
+ <start name="platform_drv">
+ <resource name="RAM" quantum="1M"/>
+ <provides><service name="Platform"/></provides>
+ <config/>
+ </start>}
+
append config {
<start name="loader">
<resource name="RAM" quantum="2M"/>
@@ -131,6 +142,8 @@ if {[have_spec qt4_deprecated]} {
}
}
+lappend_if [have_spec platform_rpi] boot_modules platform_drv
+
build_boot_image $boot_modules
append qemu_args " -m 512 "
The remainder of the patch looks good to me.
Post by Reinier Millo Sánchez
When try to run the Arora example get the framebuffer initialized but
Genode 14.08
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 165 MB to init
int main(): --- init created, waiting for exit condition ---
[init -> fb_drv] --- fb_drv started ---
[init -> platform_drv] --- Raspberry Pi platform driver ---
[init -> usb_drv] Services::Services(): No <storage> config node
found - not starting the USB Storage (Block) service
[init -> usb_drv] Enabled UHCI (USB 1.0/1.1) support
[init -> usb_drv] Enabled EHCI (USB 2.0) support
[init -> usb_drv] Using configured mac: 2e:60:90:0c:4e:01
[init -> usb_drv] dev_info: DWC OTG Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus
number 1
[init -> usb_drv] dev_info: irq 17, io mem 0x00000000
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 1 port detected
[init -> nitpicker] create session with args: label="wm",
ram_quota=28672
[init -> nitpicker] create session with args: label="pointer",
ram_quota=28672
[init -> nitpicker] create session with args: label="wm ->
decorator", ram_quota=28672
[init -> arora] tar archive 'qt5_fs_arora.tar' local at 230000, size
is 503808
[init -> arora] void init_libc_lock_pipe(): init_libc_lock_pipe()
[init -> arora] using the pipe libc plugin
[init -> arora] void init_nic_dhcp(): init_nic_dhcp()
[init -> arora] Using DHCP for interface configuration.
[init -> arora] {anonymous}::Plugin::Plugin(): using the lwIP libc
plugin
I think that "No <storage> config node found ..." should not be causing
the problem running the Arora browser.
You are right. The problem must be somewhere else. I have two ideas:

First, the USB driver may got stuck because it missed one of the
high-frequent SOF interrupts. Not only do those interrupts occur at a
very high rate but they must be serviced in a timely manner too.
Otherwise the USB host controller or hub gets stuck. The LOG output
shows that the USB hub is found (so the communication of the driver with
to the host controller is working) but there is HID device popping up
(you may compare the above output of the USB driver with the output
produced by the demo.run script to see the difference). When running a
complex scenario including Qt5 programs, a CPU-intensive process (i.e.,
Arora) may defer the operation of the USB driver. So the USB driver will
service the interrupt too late. I observed a similar problem with the
gems/run/wm.run script on the Rpi:

https://github.com/genodelabs/genode/blob/master/repos/gems/run/wm.run

To remedy this effect, the static priorities of the base-hw kernel come
to the rescue. For the wm.run script, I downgraded the priorities of the
heavy-weight processes. Look out for the "prio_levels" and "priority"
attributes in the run script. You can find the corresponding
documentation here:

http://genode.org/documentation/developer-resources/init#Priority_support

The second possible issue might be related to the networking driver,
which is provided by the USB driver, too. The Rpi relies on
networking-over-USB. Personally, I have not used networking on the Rpi,
yet. So you are conquering uncharted land here.

Have you successfully tried to run a simpler Qt5 application on the Rpi.
I would recommend to test the qt5.run script first. This one does not
rely on a working networking driver. Once you got the qt5.run script
working, have a look at the networking as a separate step by testing
(and adapting) the libports/lwip.run script on the Rpi. I would not try
to get the arora.run script working unless both run scripts qt5.run and
lwip.run work fine.

Good luck!

Norman
--
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

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