Joystick Research
Joysticks on FreeBSD need to be at
/dev/uhid#
1)
uhidd
by-default does
/dev/uvhid#
, that can be symlinked to
/dev/uhid#
or be done automatically with
uhidd -H uhid
2)
uhidd
has a lot of flags in examples for keyboard/mouse/consumer, but a joystick only needs the virtual generic interface with uhidd -h
(not all of -kmohs
)
uhidd
has to unbind whatever kernel driver is on the joystick with uhidd -u
to take it over
Seemingly once
uhidd
takes control of the original
/dev/input/event#
device, if it had
evdev
or
joystick
forced through
xorg.conf
that driver gets unloaded according to
Xorg.0.log
3)
USB devices are by-default put into
/dev/uhid#
paths with older
uhid and
usb drivers
4)
2024/09/09:
uhidd
is required to move game controllers to
/dev/uhid#
when using
usbhid
uhidd
su -
pkg install 'uhidd'
dmesg | grep 'ugen'
uhidd -h -H 'uhid' -u '/dev/ugen0.6'
devd.conf
su -
pkg install 'uhidd'
ee '/usr/local/etc/devd/sidewinder-precision-pro-joystick-uhidd.conf'
notify 0 {
match "type" "ATTACH";
match "ugen" "ugen[0-9]+.[0-9]+";
match "vendor" "0x045e";
match "product" "0x0008";
action "/usr/local/sbin/uhidd -h -H uhid -u /dev/$ugen";
};