USB keyboard problem

w0lfie w0lfie at
Wed Nov 29 21:11:18 UTC 2006

Something I forgot to add...
The keyboard_t struct kbd is passed to the ukbd_interrupt
function. Within this struct, there is a ukbd_state struct
that includes ks_ndata and ks_odata (new and current data?).
Which part of the system actually fills in the ks_ndata
struct? Is this filled in externally to the ukbd driver?
Such as the usb hid driver?
What I am getting at is my problem may not be within the
ukbd driver but within the mechanism that fills in ks_ndata.
If this is the case, I should be looking at that piece of
code rather than the ukbd driver.

----- Original Message Follows -----
> Heya,
> I have a usb keyboard (Genius slimstar pro) and am having
> the same problems as others are experiencing. When the kb
> is first loaded, the two modifiers ctrl and shift are
> "stuck" on. This results in keys like d exiting your
> terminal. If you hit ctrl and shift on another kb (I have
> an at kb hooked up as well) it resets these modifiers.
> Once this has been done, a majority of the keys (a-z, 1-0
> etc...) work as they should. None of the modifier keys
> work though.
> After digging through and playing with the ukbd code, I
> have found that when you hit any of the modifier keys, it
> sends the two keycodes 0xe0 and 0xe1 as pressed keys to
> ukbd_interrupt() and sends nothing when you release the
> key.
> I have tested this keyboard in OpenBSD, Linux and Windows
> all with success. I have also tried this without the
> kbdmux and get the same results.
> Any help or insight into this problem would really be
> appreciated as I'm quite stuck on where to go to from
> here.
> Cheers,
> Sam.
> _______________________________________________
> freebsd-hackers at mailing list
> To unsubscribe, send any mail to
> "freebsd-hackers-unsubscribe at"

More information about the freebsd-hackers mailing list