On Tue, May 21, 2013 at 05:04:30PM +0800, Amos Kong wrote: > On Tue, May 21, 2013 at 10:38:00AM +0200, Paolo Bonzini wrote:
> > > Please correct me if something is wrong, thanks. > > > > > > When we use VNC/SPICE/SDL, vm Window will captured the key events, > > > then qemu process the events and transfer to guest through emulated PS2 > > > device. > > > > > > When we hold the key in keyboard of host, real keyboard or host OS will > > > do auto-repeat. vm Window will transfer repeated events to guest. > > > In this case, it seems the auto-repeat of emulated PS2 device doesn't > > > needed. > > > > If you can make emulated autorepeat work also with VNC/SDL/SPICE, it > > would be much better, because then the guest can choose to enable or > > disable the autorepeat as desired. > > > > That's why I mentioned testing with FreeDOS, which does no emulation. > > You can find DOS programs to change the typematic rate. > > Yes, if we don't process events from host, the rate set in guest > doesn't work for SDL/VNC/SPICE/.. > > I have fixed it by ignoring continual/repated(same keycode) press > events. It works now :) When I test with linux guest, set rate by 'kbdrate -r ..', emulated PS2 device can get a keyboard_write (cmd: 0xf3), rate will be set, auto-repeat rate can be controlled. I also tested by Win7, set rate by 'mode con rate=2',emulated PS2 device can get a keyboard_write (cmd: 0xf3), rate will be set, auto-repeat rate can be controlled. Is it enough to prove the auto-repeat implemented in ps2 is ok? > I just tested by Linux guest (set rate by 'kbdrate -s ..'), > will test with FreeDOS. In FreeDOS, I set rate by 'mode con rate=2', got a success prompt. but emulated PS2 device can't get a keyboard_write (cmd: 0xf3) in init stage & when I execute mode command. Auto-repeat always use default rate in qemu-ps2 code. FreeDOS bug? Will study it tomorrow. -- Amos.