Opened 4 years ago

Closed 17 months 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)

usb_hid_report_descriptor_0c45_7692_0.bin (79 bytes ) - added by TmTFx 4 years ago.
usb_hid_report_descriptor_0c45_7692_1.bin (79 bytes ) - added by TmTFx 4 years ago.
syslog (380.0 KB ) - added by TmTFx 4 years ago.

Download all attachments as: .zip

Change History (18)

by TmTFx, 4 years ago

Attachment: syslog added

comment:1 by TmTFx, 4 years ago

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.

comment:2 by TmTFx, 4 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 TmTFx, 4 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

Version 0, edited 4 years ago by TmTFx (next)

comment:4 by pulkomandy, 4 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 TmTFx, 4 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

Last edited 4 years ago by TmTFx (previous) (diff)

comment:6 by TmTFx, 4 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...

Last edited 4 years ago by TmTFx (previous) (diff)

comment:7 by pulkomandy, 4 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:8 by waddlesplash, 2 years ago

Please retest under a recent nightly.

comment:9 by TmTFx, 2 years ago

Give me one or two days and I'll recheck it

comment:10 by TmTFx, 2 years ago

Tested with hrev55608 the problem is still there

comment:12 by waddlesplash, 2 years ago

Component: - GeneralDrivers/Input/USB-HID

comment:13 by TmTFx, 17 months 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 TmTFx, 17 months ago

After degrading the firmware there are no problems in Haiku anymore. You can close the ticket. Thank you

comment:15 by diver, 17 months ago

Resolution: no change required
Status: newclosed
Note: See TracTickets for help on using tickets.