Re: Example context needing use of hw.usb.usbhid.enable=0 : serial console keyboard input under Parallels (aarch64) [reproduces again]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 14 Aug 2025 18:51:09 UTC
Jordan Gordeev <jgopensource_at_proton.me> wrote on
Date: Thu, 14 Aug 2025 17:28:35 UTC :

> On Thursday, 14 August 2025 at 00:01, Mark Millard <marklmi@yahoo.com> wrote:
> 
> > Jordan Gordeev <jgopensource_at_proton.me> wrote on
> > 
> > Date: Wed, 13 Aug 2025 18:14:41 UTC :
> > 
> > > On Wednesday, 13 August 2025 at 08:30, Mark Millard marklmi@yahoo.com wrote:
> > > 
> > > > Jordan Gordeev <jgopensource_at_proton.me> wrote on
> > > > 
> > > Okay, you've enabled the generation of debugging output by hkbd(4). What did you do with the generated output?
> > 
> > 
> > Other than the diff's I'd provided (as referenced below)?
> 
> If usbhid is enabled and you put hw.hid.hkbd.debug="100" in /boot/loader.conf, after rebooting you will see messages like these in dmesg:
> hkbd_probe:
> hkbd_probe:
> hkbd_probe:
> hkbd_probe:
> hkbd0: <VMware VMware Virtual USB Keyboard> on hidbus2
> hkbd_attach: Parsing HID descriptor of 65 bytes
> hkbd_parse_hid: Found keyboard event array
> hkbd_parse_hid: Found key 0xe0
> hkbd_parse_hid: Found key 0xe1
> hkbd_parse_hid: Found key 0xe2
> hkbd_parse_hid: Found key 0xe3
> hkbd_parse_hid: Found key 0xe4
> hkbd_parse_hid: Found key 0xe5
> hkbd_parse_hid: Found key 0xe6
> hkbd_parse_hid: Found key 0xe7
> hkbd_parse_hid: Found keyboard numlock
> hkbd_parse_hid: Found keyboard capslock
> hkbd_parse_hid: Found keyboard scrolllock
> hkbd_set_leds: leds=0x00
> hkbd_set_leds: len=1, id=0
> hkbd_set_leds: leds=0x00
> hkbd_set_leds: len=1, id=0
> 
> If you start typing on the keyboard, the messages will look like these:
> hkbd_intr_callback: actlen=8 bytes
> hkbd_intr_callback: modifiers = 0x0000
> hkbd_intr_callback: Key 0x28 pressed
> hkbd_put_key: 0x28 (40) pressed
> 
> If you see too many of these messages on your first virtual terminal to the point of being unable to use it, switch to the second or subsequent virtual terminals (e.g. Alt+F2). The first one is the kernel's console while the others are not. You could also ssh into the system.

Have you been implicitly expecting a debug kernel instead of
kernel.GENERIC-NODEBUG ? I had previously provided the text
(note the "GENRIC-NODEBUG"):

QUOTE
# uname -apKU
FreeBSD aarch64-main-pbase 15.0-PRERELEASE FreeBSD 15.0-PRERELEASE main-n279519-7a9834041c91 GENERIC-NODEBUG arm64 aarch64 1500059 1500059
END QUOTE

But we did not catch the "which type of kernel"
issue then.


Now testing the debug kernel with hw.hid.hkbd.debug="100" :
It now provides the dmesg -a text you have been
looking for all along. Sorry for the previously bad test
context.


So, based on kernel instead of kernel.GENERIC-NODEBUG :

# grep "\<hw\." /boot/loader.conf
#hw.usb.usbhid.enable=0
hw.hid.hkbd.debug="100"
#hw.acpi.verbose=1

The input is still not working for that kind of boot,
as expected.

dmesg -a as of login prompt, no typing to the FreeBSD kernel yet:

# dmesg -a | grep -e kbd -e eybo -e hkbd_ | more
kbd0 at kbdmux0
hkbd_probe: 
hkbd_probe: 
ugen1.3: <Parallels Virtual Keyboard> at usbus1
usbhid2: <Parallels Virtual Keyboard, class 0/0, rev 3.00/1.10, addr 2> on usbus1
hkbd_probe: 
hkbd_probe: 
hkbd0: <Parallels Virtual Keyboard> on hidbus2
hkbd_attach: Parsing HID descriptor of 58 bytes
hkbd_parse_hid: Found keyboard event array
hkbd_parse_hid: Found key 0xe0
hkbd_parse_hid: Found key 0xe1
hkbd_parse_hid: Found key 0xe2
hkbd_parse_hid: Found key 0xe3
hkbd_parse_hid: Found key 0xe4
hkbd_parse_hid: Found key 0xe5
hkbd_parse_hid: Found key 0xe6
hkbd_parse_hid: Found key 0xe7
hkbd_parse_hid: Found keyboard numlock
hkbd_parse_hid: Found keyboard capslock
hkbd_parse_hid: Found keyboard scrolllock
hkbd_set_leds: leds=0x00
hkbd_set_leds: len=1, id=0
hkbd_set_leds: leds=0x00
hkbd_set_leds: len=1, id=0
kbd1 at hkbd0
usbhid3: <Parallels Virtual Keyboard, class 0/0, rev 3.00/1.10, addr 2> on usbus1
hkbd_probe: 
hkbd_probe: 
hkbd1: <Parallels Virtual Keyboard> on hidbus3
hkbd_attach: Parsing HID descriptor of 160 bytes
hkbd_parse_hid: Found keyboard event array
hkbd_parse_hid: Found key 0xe0
hkbd_parse_hid: Found key 0xe1
hkbd_parse_hid: Found key 0xe2
hkbd_parse_hid: Found key 0xe3
hkbd_parse_hid: Found key 0xe4
hkbd_parse_hid: Found key 0xe5
hkbd_parse_hid: Found key 0xe6
hkbd_parse_hid: Found key 0xe7
hkbd_parse_hid: Found keyboard numlock
hkbd_parse_hid: Found keyboard capslock
hkbd_parse_hid: Found keyboard scrolllock
hkbd_set_leds: leds=0x00
hkbd_set_leds: len=2, id=1
hkbd_set_leds: leds=0x00
hkbd_set_leds: len=2, id=1
kbd2 at hkbd1
hkbd_probe: 
hkbd_probe: 
hkbd_probe: 
hkbd_probe: 
hkbd_probe: 
hcons0: <Parallels Virtual Keyboard Consumer Control> on hidbus3
hkbd_probe: 
hkbd_probe: 
hkbd_probe: 

Typing one letter to the login prompt added:

hkbd_intr_callback: actlen=9 bytes
hkbd_intr_callback: modifiers = 0x0000
hkbd_intr_callback: Key 0x16 pressed
hkbd_put_key: 0x16 (22) pressed
hkbd_intr_callback: actlen=9 bytes
hkbd_intr_callback: modifiers = 0x0000
hkbd_put_key: 0x416 (1046) released


(Reminder: the FreeBSD EFI loader took input okay.)

Thanks,
mark

===
Mark Millard
marklmi at yahoo.com