Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Jun 2026 21:54:59 +0000 (UTC)
From:      "G. Paul Ziemba" <pz-freebsd-stable@ziemba.us>
To:        freebsd-stable@FreeBSD.org
Subject:   fbsd 15 hsctrl actions
Message-ID:  <10vkv3j$1nef$1@usenet.ziemba.us>

index | next in thread | raw e-mail

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!


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?10vkv3j$1nef$1>