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