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";
};
TODO
ld-elf.so.1 %LIBCUSE%
error (
thread)
su -l
mv '/usr/local/etc/devd/uhidd-devd.conf' '/usr/local/etc/devd/uhidd-devd.conf~'
TODO 2
su - root -c "sysctl 'hw.usb.usbhid.enable=0' && sleep 3 && sysctl 'hw.usb.usbhid.enable=1'"