Hello Keqin,
it looks like the PS/2 driver is getting user input (filling the ring buffer) but the input client (which is nitpicker in the demo scenario) is not requesting the input from the driver in a timely manner. There could be several causes for this:
* The nitpicker GUI server could not be started correctly. To see whether the problem lies within nitpicker, you might try instrumenting the code (located at os/src/server/nitpicker/'). For example, add a PDBG message at the 'Nitpicker::Main::Main' constructor. You might also instrument the 'Nitpicker::Main::handle_input' function to see a message each time, the GUI server gets an input event from the driver.
* There is a problem in Qemu's PS/2 device model. Depending on the emulated hardware platform, some versions of Qemu have problems with emulating certain peripherals. We have repeatedly experienced such problems. Could you give a different Qemu version a try? I recommend to build Qemu from source:
http://git.qemu.org/git/qemu.git
Btw, currently, I am using version 1.6.2, which works fine for me.
* The timer driver might not work correctly and thereby prevent nitpicker from fetching input events. To see if the timer works, please give 'make run/timer' a try. The corresponding run script is located at 'os/run/timer.run'.
* The framebuffer driver might not work correctly, causing nitpicker to get stuch. To see if the framebuffer driver is working on your platform, please give 'make run/framebuffer' a try. The corresponding run script is located at 'os/run/framebuffer.run'.
For further investigation, please provide us with the information about which version of Genode and which base platform you are using. Also, the complete log output would be helpful.
Cheers Norman
On 03/23/2014 04:31 PM, Sun Keqin wrote:
Hi all,
I met a problem when I ran "demo" on Ubuntu which installed on
MACBOOK PRO with VMWare Fusion. The mouse didn't show up and the log printed below. I have tried to change the size of Ring_buffer but it didn't work. What should I do to fix that?
Thanks
Keqin
[init -> launchpad] --- entering main loop --- [init -> ps2_drv] C++ runtime: Ring_buffer<unsigned char, 1024>::Overflow [init -> ps2_drv] void* abort(): abort called