Re: set keyboard repeat rate: EVIOCGREP and EVIOCSREP

From: Vernon Mauery
Date: Fri Apr 08 2005 - 17:29:17 EST


Vernon Mauery wrote:
> I was wondering if anyone knows how to change the repeatrate on a USB keyboard with a 2.4 kernel. The system is a legacy free system (no ps2 port), so kbdrate does nothing. With evdev loaded, the keyboard and mouse (both USB devices) get registered with the event system and show up as /dev/input/event[01]. I know the event subsystem does software key repeating and was wondering how to change that.
>
> I poked around and found the EVIOCGREP and EVIOCSREP ioctls, but when I tried using them, the ioctl returned invalid parameter. Upon further investigation, I found that the ioctl definitions (located in the linux/input.h header file) are not used in kernel land. That would explain why it failed, but that just means I ran into a dead end. Were those definitions legacy code from 2.2 or is it something that never got implemented, only defined? I also noticed that the defines are gone in 2.6. So how _does_ one go about changing the repeat rate on a keyboard input device in 2.4?
>

Just in case anyone cares, I spent some more time poking around in the event code and it looks like the way to do this seems to be exposed by the evdev module. If you write to /dev/input/eventX an input_event that contains an event of type EV_REP with either REP_DELAY or REP_PERIOD as the code and a value in milliseconds, I think it is supposed to set up the software auto repeat for you. But with the atkbd driver, you have to turn off hardware auto repeat for this to take effect.

--Vernon
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/