Bug 248365 - Varmilo VA109M keyboard not working
Summary: Varmilo VA109M keyboard not working
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: 12.1-RELEASE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-usb (Nobody)
URL:
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2020-07-30 11:21 UTC by cvelbar
Modified: 2020-07-30 12:51 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description cvelbar 2020-07-30 11:21:28 UTC
I'm trying to use a Varmilo VA109M keyboard with FreeBSD.
It seems to be correctly recognised

ugen2.3: <AONE Varmilo Keyboard> at usbus2
ukbd0: <AONE Varmilo Keyboard, class 0/0, rev 2.00/1.00, addr 2> on usbus2
ukbd1: <AONE Varmilo Keyboard, class 0/0, rev 2.00/1.00, addr 2> on usbus2
uhid0: <AONE Varmilo Keyboard, class 0/0, rev 2.00/1.00, addr 2> on usbus2

When I try to type nothing shows as if a meta or function key is stuck - after pocking on the keyboard sometimes the computer goes to sleep or resets.
I tried it also on my laptop with the same FreeBSD 12.1-RELEASE and the behaviour is identic.
It works under Linux and Windows on the same machines.
The issues arise also when the keyboard is plugged in after boot.

Possibly related to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=181425

# Relevant part of dmesg with hw.usb.ukbd.debug=1
ugen2.3: <AONE Varmilo Keyboard> at usbus2
ukbd0 on uhub0
ukbd0: <AONE Varmilo Keyboard, class 0/0, rev 2.00/1.00, addr 2> on usbus2
ukbd_attach: Parsing HID descriptor of 59 bytes
ukbd_parse_hid: Found left control
ukbd_parse_hid: Found right control
ukbd_parse_hid: Found left shift
ukbd_parse_hid: Found right shift
ukbd_parse_hid: Found left alt
ukbd_parse_hid: Found right alt
ukbd_parse_hid: Found left GUI
ukbd_parse_hid: Found right GUI
ukbd_parse_hid: Found keyboard event array
ukbd_parse_hid: Found keyboard numlock
ukbd_parse_hid: Found keyboard capslock
ukbd_parse_hid: Found keyboard scrolllock
ukbd_attach: Forcing boot protocol
ukbd_parse_hid: Found left control
ukbd_parse_hid: Found right control
ukbd_parse_hid: Found left shift
ukbd_parse_hid: Found right shift
ukbd_parse_hid: Found left alt
ukbd_parse_hid: Found right alt
ukbd_parse_hid: Found left GUI
ukbd_parse_hid: Found right GUI
ukbd_parse_hid: Found keyboard event array
ukbd_parse_hid: Found keyboard numlock
ukbd_parse_hid: Found keyboard capslock
ukbd_parse_hid: Found keyboard scrolllock
ukbd_set_leds: leds=0x00
ukbd_set_leds: leds=0x00
kbd2 at ukbd0
ukbd_set_leds_callback: len=1, id=0
ukbd_intr_callback: actlen=8 bytes
ukbd_intr_callback: modifiers = 0x0000
ukbd_intr_callback: actlen=8 bytes
ukbd_intr_callback: modifiers = 0x0000
ukbd1 on uhub0
ukbd1: <AONE Varmilo Keyboard, class 0/0, rev 2.00/1.00, addr 2> on usbus2
ukbd_attach: Parsing HID descriptor of 85 bytes
ukbd_parse_hid: Found left control
ukbd_parse_hid: Found right control
ukbd_parse_hid: Found left shift
ukbd_parse_hid: Found right shift
ukbd_parse_hid: Found left alt
ukbd_parse_hid: Found right alt
ukbd_parse_hid: Found left GUI
ukbd_parse_hid: Found right GUI
ukbd_parse_hid: Ignoring keyboard event control
ukbd_attach: Forcing boot protocol
ukbd_attach: Set protocol error=USB_ERR_STALLED (ignored)
ukbd_parse_hid: Found left control
ukbd_parse_hid: Found right control
ukbd_parse_hid: Found left shift
ukbd_parse_hid: Found right shift
ukbd_parse_hid: Found left alt
ukbd_parse_hid: Found right alt
ukbd_parse_hid: Found left GUI
ukbd_parse_hid: Found right GUI
ukbd_parse_hid: Found keyboard event array
ukbd_parse_hid: Found keyboard numlock
ukbd_parse_hid: Found keyboard capslock
ukbd_parse_hid: Found keyboard scrolllock
ukbd_set_leds: leds=0x00
ukbd_set_leds: leds=0x00
kbd3 at ukbd1
ukbd_set_leds_callback: len=1, id=0
ukbd_intr_callback: actlen=16 bytes
ukbd_intr_callback: modifiers = 0x0005
ukbd_put_key: 0xe0 (224) pressed
ukbd_put_key: 0xe2 (226) pressed
uhid0 on uhub0
uhid0: <AONE Varmilo Keyboard, class 0/0, rev 2.00/1.00, addr 2> on usbus2

# usbconfig dump
usbconfig ugen2.3 dump_curr_config_desc
ugen2.3: <AONE Varmilo Keyboard> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (350mA)


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x005b
    bNumInterfaces = 0x0003
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00a0
    bMaxPower = 0x00af

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0001
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x3b,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x55,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0010
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0002
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x21,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0020ugen2.3: <AONE Varmilo Keyboard> at usbus2

        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0004  <OUT>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0020
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000
Comment 1 Hans Petter Selasky freebsd_committer 2020-07-30 11:33:31 UTC
Can you try a 12-stable kernel?

--HPS
Comment 2 cvelbar 2020-07-30 12:35:31 UTC
(In reply to Hans Petter Selasky from comment #1)
I have tried booting from a mimi-memstick installer image and it seems to work correctly in the shell.
Comment 3 cvelbar 2020-07-30 12:51:16 UTC
I have now noticed on 12.1-RELEASE that if I change the virtual console to ttyv1 with ALT+F2 the keyboard works correctly. The problem seems to be just on ttyv0.