fbsd 15 hsctrl actions

"G. Paul Ziemba" <[email protected]> Mon, 1 Jun 2026 21:54:59 +0000 (UTC)
Newsgroups gmane.os.freebsd.stable
Message-ID <[email protected]>
Summary: usbhidaction used to work with my keyboard volume control,
but now in FBSD 15 it doesn't, and I can't find the right device node.

In FreeBSD 14, I used /usr/bin/usbhidaction to distribute up/down
events from the volume control on my keyboard.

The volume control was assigned to the "uhid" driver, and I could
find it in the output of "usbconfig show_ifdrv" and then run

    usbhidaction -f uhidX

I upgraded to FreeBSD 15 today. The new default usbhid driver seems
to be running. However, I can't find a device note to specify to 
usbhidaction.

"usbconfig show_ifdrv |grep Metadot" yields:

    ugen0.9.0: usbhid0: <Metadot - Das Keyboard Das Keyboard 4, class 0/0, rev 1.10/1.00, addr 16>
    ugen0.9.1: usbhid1: <Metadot - Das Keyboard Das Keyboard 4, class 0/0, rev 1.10/1.00, addr 16>

but I cannot find a usbhid1 (or any usbhidX) device under /dev.

It looks as if hsctrl(4) has picked up the volume control. I can
set "sysctl dev.hsctrl.0.debug=100" and see lots of

Jun  1 14:28:51 foo kernel: hsctrl0: hidmap_intr: data = 03 00 00 00
Jun  1 14:28:51 foo kernel: hsctrl0: hidmap_intr: hm=0xfffff808d7046100 len=4

messages when I turn the knob.

There doesn't seem to be any /dev/hsctrl* and the hsctrl(4) man page
refers to /dev/input/event*.

I have 

    % ls /dev/input
    event0          event2          event5          event8
    event1          event3          event6          event9

but I can't see how to map usbhid1 or hsctrl0 to any of these.

Questions:
    1. If I can find the right /dev/input/event* node, should
       usbhidaction work with it?
    2. Is there some better method for capturing and processing
       events from the volume control?

Thanks!