Opened 10 months ago

Last modified 3 months ago

#15464 new bug

wasd keyboard not working

Reported by: TmTFx Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: - General 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 10 months ago.
usb_hid_report_descriptor_0c45_7692_1.bin (79 bytes ) - added by TmTFx 10 months ago.
syslog (380.0 KB ) - added by TmTFx 10 months ago.

Download all attachments as: .zip

Change History (10)

by TmTFx, 10 months ago

Attachment: syslog added

comment:1 by TmTFx, 10 months 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, 9 months 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, 9 months 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
Last edited 9 months ago by diver (previous) (diff)

comment:4 by pulkomandy, 7 months 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, 7 months 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 7 months ago by TmTFx (previous) (diff)

comment:6 by TmTFx, 3 months 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 3 months ago by TmTFx (previous) (diff)

comment:7 by pulkomandy, 3 months 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.

Note: See TracTickets for help on using tickets.