Re: Example context needing use of hw.usb.usbhid.enable=0 : serial console keyboard input under Parallels (aarch64) [reproduces again]
- Reply: Jordan Gordeev : "Re: Example context needing use of hw.usb.usbhid.enable=0 : serial console keyboard input under Parallels (aarch64) [reproduces again]"
- In reply to: Mark Millard : "Re: Example context needing use of hw.usb.usbhid.enable=0 : serial console keyboard input under Parallels (aarch64) [no longer reproduces]"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 11 Aug 2025 00:30:24 UTC
On Aug 10, 2025, at 10:32, Mark Millard <marklmi@yahoo.com> wrote:
> On Aug 10, 2025, at 07:51, Jordan Gordeev <jgopensource@proton.me> wrote:
>
>> On Sunday, 10 August 2025 at 12:16, Mark Millard <marklmi@yahoo.com> wrote:
>>
>>> . . .
>>
>> When usbhid is enabled USB keyboards should appear as hkbd(4) devices. Do you see any lines mentioning hkbd in dmesg? If not, try adding "hw.hid.hkbd.debug=100" to /boot/loader.conf in the hope that hkbd will produce some debug messages. Try also loading the hkbd module and any modules on which it depends via loader.conf because that might affect the outcome.
>>
>> When reporting problems such as this, you should provide the version number of FreeBSD (exact commit ID), version number of Parallels, whether you have any VM tools installed for better integration between FreeBSD and Parallels, and because this is a USB problem, the output of "usbconfig -v" (at least the part describing the keyboard).
>
> I'm now unable to reproduce the issue.
>
> . . .
>
> I'll report more if I get the problem again.
After the updates I'm back to the "serial console"
is not getting/taking keyboard input (without
hw.usb.usbhid.enable=0 involved).
I'll note that input at the earlier EFI loader
stage worked. This is later at the login prompt,
so when the FreeBSD kernel would be involved.
# dmesg -a | grep -e eybo -e kbd
kbd0 at kbdmux0
ugen1.3: <Parallels Virtual Keyboard> at usbus1
usbhid2: <Parallels Virtual Keyboard, class 0/0, rev 3.00/1.10, addr 2> on usbus1
hkbd0: <Parallels Virtual Keyboard> on hidbus2
kbd1 at hkbd0
usbhid3: <Parallels Virtual Keyboard, class 0/0, rev 3.00/1.10, addr 2> on usbus1
hkbd1: <Parallels Virtual Keyboard> on hidbus3
kbd2 at hkbd1
hcons0: <Parallels Virtual Keyboard Consumer Control> on hidbus3
# kldstat
Id Refs Address Size Name
1 27 0xffff000000000000 1428858 kernel
2 1 0xffff000195200000 22000 hcons.ko
3 3 0xffff000195222000 24000 hidmap.ko
4 1 0xffff000195246000 22000 hms.ko
5 1 0xffff000195268000 22000 hsctrl.ko
6 1 0xffff00019528a000 23000 virtio_balloon.ko
7 1 0xffff0001952ad000 22000 mac_ntpd.ko
# kldload hkbd.ko
kldload: can't load hkbd.ko: module already loaded or in kernel
# uname -apKU
FreeBSD aarch64-main-pbase 15.0-PRERELEASE FreeBSD 15.0-PRERELEASE main-n279519-7a9834041c91 GENERIC-NODEBUG arm64 aarch64 1500059 1500059
That is a pkgbase FreeBSD installation.
Parallels Desktop 20 for Mac Pro Edition Versin 20.4.1 (55996)
No VM tools installed. (Only used via the basic console and
ssh.)
# usbconfig -l
ugen1.1: <XHCI root HUB (0x1033)> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.1: <EHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen1.2: <Virtual Mouse PARALLELS> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (0mA)
ugen1.3: <Virtual Keyboard PARALLELS> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (0mA)
# usbconfig -v
. . .
ugen1.3: <Virtual Keyboard PARALLELS> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (0mA)
ugen1.3.0: usbhid2: <Parallels Virtual Keyboard, class 0/0, rev 3.00/1.10, addr 2>
ugen1.3.1: usbhid3: <Parallels Virtual Keyboard, class 0/0, rev 3.00/1.10, addr 2>
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0300
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0009
idVendor = 0x203a
idProduct = 0xfffb
bcdDevice = 0x0110
iManufacturer = 0x0001 <Parallels>
iProduct = 0x0002 <Virtual Keyboard>
iSerialNumber = 0x0003 <KBD1.1>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0047
bNumInterfaces = 0x0002
bConfigurationValue = 0x0001
iConfiguration = 0x0001 <Parallels>
bmAttributes = 0x00e0
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0003 <HID device>
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0001
iInterface = 0x0004 <Virtual Keyboard Interface>
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x21
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x09, 0x21, 0x01, 0x10, 0x00, 0x01, 0x22, 0x3a,
0x08 | 0x00
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0040
bInterval = 0x0004
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x06, 0x30, 0x00, 0x00, 0x40, 0x00
Interface 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0003 <HID device>
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0004 <Virtual Keyboard Interface>
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x21
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x09, 0x21, 0x01, 0x10, 0x00, 0x01, 0x22, 0xa0,
0x08 | 0x00
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0082 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0040
bInterval = 0x0004
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x06, 0x30, 0x00, 0x00, 0x40, 0x00
===
Mark Millard
marklmi at yahoo.com