Bug 209586 - Ozone Strike Pro Keyboard bugged
Summary: Ozone Strike Pro Keyboard bugged
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-usb mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-17 18:53 UTC by Jakob Gillich
Modified: 2016-08-08 08:18 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jakob Gillich 2016-05-17 18:53:19 UTC
I have a "Ozone Strike Pro" USB keyboard that is pretty bugged on FreeBSD -CURRENT r299864 (yesterday's head) and 20160429-r298793 (the latest snapshot). Relevant dmesg output:

ugen1.3: <vendor 0x058f> at usbus1
uhub5: <vendor 0x058f product 0x6254, class 9/0, rev 2.00/1.00, addr 3> on usbus1
uhub5: 4 ports with 4 removable, self powered
ugen1.4: <vendor 0x04d9> at usbus1
ukbd1: <vendor 0x04d9 USB Keyboard, class 0/0, rev 2.00/d.04, addr 4> on usbus1
kbd3 at ukbd1
ukbd2: <vendor 0x04d9 USB Keyboard, class 0/0, rev 2.00/d.04, addr 4> on usbus1
kbd4 at ukbd2
uhid0: <vendor 0x04d9 USB Keyboard, class 0/0, rev 2.00/d.04, addr 4> on usbus1

Note that plugging in the keyboard create *two* ukbd devices. When keys on the keyboard are pressed, various bugs happen:

* The "space" key enters an "a" character
* The "d" key switches the active tty
* All other keys misbehave as well

Additionally, only sometimes, the internal keyboard of the notebook also starts entering the wrong things when the Ozone is plugged in.

There is a workaround that fixes the issue when the following steps are executed in this exact order:

1. Plug in the keyboard
2. Run "usbconfig -d ugen1.4 add_quirk UQ_KBD_BOOTPROTO" on *both* devices
3. Plug out the keyboard
4. Plug it in again

After going through this procedure once, the correct behavior persists, even through a standby cycle, but it does not persist through reboots.

The keyboard works completely fine on Linux and OpenBSD. It does not work on another machine running FreeBSD -CURRENT. I did not test it on any -RELEASE.

I am not sure what else would help to track this down, please let me know if I can provide anything else.