Help testing arora,qt5 and sdl examples on RaspberryPI

Reinier Millo Sánchez rmillo at ...210...
Mon Sep 8 21:45:07 CEST 2014


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

On 09/05/2014 02:58 PM, Norman Feske wrote:
> Hello Reinier,
>
>> 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"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20140908/4515105e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rmillo.vcf
Type: text/x-vcard
Size: 519 bytes
Desc: not available
URL: <http://lists.genode.org/pipermail/users/attachments/20140908/4515105e/attachment.vcf>


More information about the users mailing list