run/noux_bash error

Christian Helmuth christian.helmuth at ...1...
Wed Oct 7 09:09:03 CEST 2015


Hello Abhay Amala,

On Tue, Oct 06, 2015 at 11:29:25PM +0200, Abhay Amala wrote:
> I execute run/demo on base-nova successfully. i have tried to run make
> run/noux_bash in my nova build directory, but i am not getting command
> prompt inside my qemu. After displaying the following outputs, it gets
> stuck.
[...]
> [init -> ps2_drv] Using keyboard with scan code set 1 (xlate).
> [init -> ps2_drv] Detected ExPS/2 mouse - activating scroll-wheel and
> 5-button support.
> [init -> platform_drv] PS2 uses IRQ, vector 0x1
> [init -> platform_drv] PS2 uses IRQ, vector 0xc

At this point the PS/2 driver hangs. This is a known issue with the
new Qemu GTK front end, but we had no time to look into it up to now.
Please add to your <nova-build-dir>/etc/build.conf the following line

  QEMU_OPT += -display sdl

and retry.

Regarding the problem with base-linux on Ubuntu 14.04, I hope somebody
in the community using this particular version will speak up.
Unfortunately, I'm of no help as I'm still using 12.04 LTS ;-)

On the other hand, you may try to debug it yourself with my guidance.
First, I'd start to instrument the fb_sdl server component. If you're
on Genode 15.08 you'll find the sources in

  repos/os/src/drivers/framebuffer/sdl/

The input handling is implemented in input.cc in the function
wait_for_event(), which is executed in the main thread of the
component. (The actual server runs in a separate thread providing the
RPC entrypoint for clients.) You can add a trace output at line 156
(right after "if ... SDL_GetMouseState()") like follows

  PLOG("event type=%s (%u)",
       event.type == SDL_KEYUP           ? "SDL_KEYUP" :
       event.type == SDL_KEYDOWN         ? "SDL_KEYDOWN" :
       event.type == SDL_MOUSEBUTTONUP   ? "SDL_MOUSEBUTTONUP" :
       event.type == SDL_MOUSEBUTTONDOWN ? "SDL_MOUSEBUTTONDOWN" :
       event.type == SDL_MOUSEBUTTONDOWN ? "SDL_MOUSEBUTTONDOWN" :
       event.type == SDL_MOUSEMOTION     ? "SDL_MOUSEMOTION" :
       event.type == SDL_ACTIVEEVENT     ? "SDL_ACTIVEEVENT" :
       "other", event.type);

It may also be of interest if the input driver tries to submit an
excessive number of invalid events for unknown event types. Please
also look at line 195 and instrument with

  if (type == Event::INVALID)
    PINF("submit invalid event");

I'm curious what you'll discover.

Regards
-- 
Christian Helmuth
Genode Labs

http://www.genode-labs.com/ · http://genode.org/
https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/

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