Opened 5 years ago
Closed 2 years ago
#15464 closed bug (no change required)
wasd keyboard not working
Reported by: | TmTFx | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Drivers/Input/HID/USB | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
the usb keyboard from WASD works on other operating systems like windows and Linux, but under Haiku it acts strangely: when I press keys nothing happens, if I keep pressed a little longer, it keeps the key “pressed” for longer time than actually is pressed. Num lock doesn’t activate. It isn’t usable at all. I tried to set the keyboard as programmable and non-programmable but nothing changed. when I connect it to the computer in /tmp appear two files which I attach here together with the syslog.
Attachments (3)
Change History (18)
by , 5 years ago
Attachment: | usb_hid_report_descriptor_0c45_7692_0.bin added |
---|
by , 5 years ago
Attachment: | usb_hid_report_descriptor_0c45_7692_1.bin added |
---|
by , 5 years ago
comment:1 by , 5 years ago
comment:2 by , 5 years ago
Under linux after plugging to usb I get this on dmesg:
[36357.917736] hid-generic 0003:0C45:7692.000F: input,hidraw0: USB HID v1.11 Keyboard
[SONiX USB Keyboard] on usb-0000:00:14.0-3/input0
[36357.920432] input: SONiX USB Keyboard Consumer Control as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.1/0003:0C45:7692.0010/input/input40
[36357.973337] input: SONiX USB Keyboard System Control as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.1/0003:0C45:7692.0010/input/input41
[36357.973458] input: SONiX USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.1/0003:0C45:7692.0010/input/input42
[36357.973558] hid-generic 0003:0C45:7692.0010: input,hidraw1: USB HID v1.11 Keyboard
[SONiX USB Keyboard] on usb-0000:00:14.0-3/input1
comment:3 by , 5 years ago
listusb in Haiku says:
0000:0000 /dev/bus/usb/0/hub "HAIKU Inc." "OHCI RootHub" ver. 0110 0c45:7692 /dev/bus/usb/1/2/0 "Microdia" "USB Keyboard" ver. 030e 046d:c52b /dev/bus/usb/1/2/1 "Logitech, Inc." "Unifying Receiver" ver. 1207 0d3d:0001 /dev/bus/usb/1/2/2 "Tangtop Technology Co., Ltd" "HID Keyboard" ver. 0001 0451:2046 /dev/bus/usb/1/2/hub "Texas Instruments, Inc." "TUSB2046 Hub" ver. 0125 0000:0000 /dev/bus/usb/1/hub "HAIKU Inc." "OHCI RootHub" ver. 0110 0000:0000 /dev/bus/usb/2/hub "HAIKU Inc." "OHCI RootHub" ver. 0110 0000:0000 /dev/bus/usb/3/hub "HAIKU Inc." "OHCI RootHub" ver. 0110 0000:0000 /dev/bus/usb/4/hub "HAIKU Inc." "OHCI RootHub" ver. 0110 0000:0000 /dev/bus/usb/5/hub "HAIKU Inc." "EHCI RootHub" ver. 0200 0000:0000 /dev/bus/usb/6/hub "HAIKU Inc." "EHCI RootHub" ver. 0200
the one indicted, when plugging in the keyboard, is:
0c45:7692 /dev/bus/usb/1/2/0 "Microdia" "USB Keyboard" ver. 030e
comment:4 by , 5 years ago
Nothing special about the USB descriptors, as far as I can see, except there are two and they are identical. However, the syslog has a lot of errors like this:
6276 KERN: usb error uhci 1: td (0x05099e20) error: status: 0x014407ff; token: 0x01e10369; 6277 KERN: usb error uhci 1: td (0x050a4d60) error: status: 0x004407ff; token: 0x00e08369; 6278 KERN: usb_hid: error waiting for report: Device check-sum error
So it seems either we have an issue in the lower levels of the USB stack, or the way we try to get data from the keyboard ends up confusing it somehow.
I think the output from listusb -v /dev/bus/usb/1/2/0
(adjust the path depending on where the keyboard appears, of course) may help.
comment:5 by , 5 years ago
listusb -v (keyboard) ... prints:
[Device /dev/bus/usb/2/2]
Class .................. 0x00 (Per-interface classes)
Subclass ............... 0x00
Protocol ............... 0x00
Max Endpoint 0 Packet .. 64
USB Version ............ 1.16
Vendor ID .............. 0x0c45 (Microdia)
Product ID ............. 0x7692
Product Version ........ 0x030e
Manufacturer String .... "SONiX"
Product String ......... "USB Keyboard"
Serial Number .......... ""
[Configuration 0]
Configuration String . ""
[Interface 0]
[Alternate 0 active]
Class .............. 0x03 (HID)
Subclass ........... 0x01
Protocol ........... 0x01
Interface String ... ""
[Endpoint 0]
MaxPacketSize .... 8
Interval ......... 1
Type ............. Interrupt
Direction ........ Input
[Descriptor 0]
Type ............. 0x21
Data ............. 11 01 00 01 22 4f 00
[Interface 1]
[Alternate 0 active]
Class .............. 0x03 (HID)
Subclass ........... 0x00
Protocol ........... 0x00
Interface String ... ""
[Endpoint 0]
MaxPacketSize .... 16
Interval ......... 1
Type ............. Interrupt
Direction ........ Input
[Descriptor 0]
Type ............. 0x21
Data ............. 11 01 00 01 22 b7 00
comment:6 by , 5 years ago
attaching it on a different haiku machine (through xhci) I get these errors (which are a lot less in number and maybe more self-explaining):
KERN: usb hub 7: KERN: port 1: new device connected
USER 'KS': Notify of added/removed device (Bad port ID)
Last message repeated 1 time
KERN: usb_hid: keyboard device unhandled control 0x00002710
Last message repeated 1 time
KERN: check_sense: encountered DEFERRED ERROR - bye, bye
Last message repeated 1 time
KERN: usb error control pipe 39: KERN: timeout waiting for queued request to complete
KERN: usb xhci 0: cancel queued transfers (4) for pipe 0xffffffff82b3c180 (0)
KERN: usb error xhci 0: unsuccessful command 15, error Context state (19)
KERN: usb error xhci 0: KERN: cancel queued transfers: could not stop endpoint: I/O error!
KERN: check_sense: encountered DEFERRED ERROR - bye, bye
Last message repeated 1 time
KERN: usb error control pipe 39: KERN: timeout waiting for queued request to complete
KERN: usb xhci 0: KERN: cancel queued transfers (5) for pipe 0xffffffff82b3c180 (0)
KERN: usb error xhci 0: unsuccessful command 15, error Context state (19)
KERN: usb error xhci 0: KERN: cancel queued transfers: could not stop endpoint: I/O error!
KERN: check_sense: encountered DEFERRED ERROR - bye, bye
KERN: Last message repeated 4 times.
It still starts with "device unhandled control 0x00002710". If needed, I bought two usb sniffers https://www.bugblat.com/products/ezsniff/index.html (one normal and one mini) (and I'm waiting the delivery) if them can help I'm at your service, as soon as we fix this bug I can give one of them to haiku developers if you wish...
comment:7 by , 5 years ago
You can ignore the "device unhandled control" message, it only means that the USB keboard driver does not implement the KB_GET_KEYBOARD_ID ioctl, but this has no impact in any way on the keyboard operation.
comment:11 by , 3 years ago
this is what I get https://file.io/exjAXrTCB26g or here https://file.re/2021/11/04/mov0167c/ or here https://we.tl/t-kMPoPGKEgX
comment:12 by , 3 years ago
Component: | - General → Drivers/Input/USB-HID |
---|
comment:13 by , 2 years ago
At [support]https://support.wasdkeyboards.com/hc/en-us/articles/360018518874-Keyboard-Firmware-Updates page (firmware update) of wasd keyboard ver 2.80 it's reported:
NOTE: some users have reported key repeat / lag issues on certain systems. If you're experiencing this problem, please flash our V0.16 firmware version in the previous releases here. We're currently working on a fix for this with the latest firmware.
This is exactly my problem
comment:14 by , 2 years ago
After degrading the firmware there are no problems in Haiku anymore. You can close the ticket. Thank you
comment:15 by , 2 years ago
Resolution: | → no change required |
---|---|
Status: | new → closed |
There are two devices in Windows as well if I attach it, so I suppose that it's like haiku is switching between the two devices constantly, maybe this is the reason for stamping only some letters sometimes and If I keep pressed for longer time.