Buttonless joystick input. Udev issue?

Having an issue trying to get my rudder pedals working for games like msfs and elite dangerous. T-rudder (also known as TFRP Rudder pedals)

It being a buttonless joystick made things a little annoying to get working to begin with. Spent a few hours digging through ancient xplane threads lead me to a solution to get it to show up as a joystick at all.

It’s recognized as as joystick after messing with udev rules and applying ENV{ID_INPUT_JOYSTICK}=“1” to the end of it. Otherwise it by default includes ID_INPUT_ACCELEROMETER=1, which it doesn’t have.

Now, I have it showing up as a joystick and it’s given an event.

P: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb5/5-6/5-6.2/5-6.2.3/5-6.2.3:1.0/0003:044F:B679.000C/input/input28/event20
N: input/event20
L: 0
S: input/by-id/usb-Thrustmaster_T-Rudder-event-joystick
S: input/by-path/pci-0000:08:00.3-usb-0:6.2.3:1.0-event-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb5/5-6/5-6.2/5-6.2.3/5-6.2.3:1.0/0003:044F:B679.000C/input/input28/event20
E: DEVNAME=/dev/input/event20
E: MAJOR=13
E: MINOR=84
E: SUBSYSTEM=input
E: USEC_INITIALIZED=367198555
E: ID_INPUT_JOYSTICK=1
E: ID_INPUT=1
E: ID_INPUT_ACCELEROMETER=1
E: ID_VENDOR=Thrustmaster
E: ID_VENDOR_ENC=Thrustmaster
E: ID_VENDOR_ID=044f
E: ID_MODEL=T-Rudder
E: ID_MODEL_ENC=T-Rudder
E: ID_MODEL_ID=b679
E: ID_REVISION=0110
E: ID_SERIAL=Thrustmaster_T-Rudder
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:08:00.3-usb-0:6.2.3:1.0
E: ID_PATH_TAG=pci-0000_08_00_3-usb-0_6_2_3_1_0
E: ID_FOR_SEAT=input-pci-0000_08_00_3-usb-0_6_2_3_1_0
E: LIBINPUT_DEVICE_GROUP=3/44f/b679:usb-0000:08:00.3-6.2
E: DEVLINKS=/dev/input/by-id/usb-Thrustmaster_T-Rudder-event-joystick /dev/input/by-path/pci-0000:08:00.3-usb-0:6.2.3:1.0-event-joystick
E: TAGS=:seat:uaccess:
E: CURRENT_TAGS=:seat:uaccess:

After all of this, it’s still not recognized inside of games as a joystick.

so far, I’ve tried all of these udev rules replugging each time (and placed from 51 to 99) to get it to work without success.
(i purposely commented them all out so i can use them for reference on new rule attempts)

# "Thrustmaster_T-Rudder "
#ENV{ID_INPUT_JOYSTICK}="1", SUBSYSTEM=="input", ATTRS{name}=="Thrustmaster T-Rudder", KERNEL=="event*", MODE="0666", ENV{ID_INPUT_ACCELEROMETER}="0"
#SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b679", MODE="0666", ENV{ID_INPUT_ACCELEROMETER}="0", ENV{ID_INPUT_JOYSTICK}="1"
#KERNEL=="input*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b679", MODE="0660", ENV{ID_INPUT_ACCELEROMETER}="0", ENV{ID_INPUT_JOYSTICK}="1"
#KERNEL=="event20", SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b679", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
ATTRS{idProduct}=="b679", ENV{ID_INPUT_JOYSTICK}="1", MODE="0666"

It does show up as
crw-rw-rw-+ 1 root input 13, 84 Mar 20 10:59 /dev/input/event20

Any ideas? I feel like i’ve tried everything. I’ve even gone so far as passing the rudders to a windows vm and using opentrack to push inputs over UDP to a local opentrack receiving UDP and outputting joystick (unfortunately it combines all the axes into xbox left stick).

**Kernel 5.16.15-arch1-1

Got it working… FINALLY! :smiley:

Turns out, i couldn’t put the rule anywhere but in 70-steam-input.rules

70-something-else.rules wouldn’t work, 69, 68, 71, 72, 99, nothing.

ended up putting it at the end of the 70-steam-input.rules as
KERNEL=="*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b679", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
unplugged, replugged and boom. it worked.

1 Like