keyboard has a weird layout after boot

Lev Serebryakov lev at FreeBSD.org
Tue Jul 14 14:37:51 UTC 2020


On 14.07.2020 16:48, László Lajos Jánszky wrote:

>>>>> I have an Obins Anne Pro keyboard, which is a 60% mechanical NKRO
>>>>> keyboard
>>>>> http://en.obins.net/anne-pro It works properly in the UEFI and in the
>>>>> rescue shell when I quit the boot menu, but after FreeBSD booted up
>>>>> and I got the login screen it changes layout to something weird. For example
>>>>> I got "a" when pressing backspace or "w". Most of the keys stop working.
>>>>> anything about it in the manual, so probably this keyboard is NKRO
>>>>> only...
>>>>> Any idea how to make it work with FreeBSD or what causes this problem?

 As far as I know, NKRO USB keyboards could work in two modes: "Legacy" and "Bitmap/NKRO".

 HID (and each USB Keyboard is HID device) is very flexible standard, and it allows several ways to report pressed/released buttons: as event with 8 modifier keys and up to 6 "simple" keys per event, or by transferring bitmap with bit for each button (pretends that all buttons are modifier ones, which allows NKRO).

 "Standard" events could have only 6 different keys reported due to packet size constrains. But this way was historically first and "standard" keyboards work this way to this day.

 "Bitmap" reporting could transmit any state of keyboard with as many pressed keys as there are keys total (NKRO!), but requires additional support from drirver.

 NKRO keyboards start in "Legacy"/"Boot" mode because many BIOSes/EFI can not understand "bitmap" reporting. Conditions to switch to "bitmap" reporting are different for different NKRO keyboards.

 You could read more here: https://www.devever.net/~hl/usbnkro

 Looks like, FreeBSD HID/kbd driver has problem with "bitmap" reporting and this keyboard switch to NKRO mode after boot regardless.

 I've CC: this message to usb@ mailing list, as it looks like USB problem on FreeBSD side, in HID driver.

-- 
// Lev Serebryakov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-usb/attachments/20200714/ee2e749a/attachment.sig>


More information about the freebsd-usb mailing list