aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2025-02-03 22:37:45 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2025-02-03 22:37:45 +0200
commita9312ead5720922e1c06b541ea48b6db3f289d36 (patch)
tree27b082b6d0bca607dd54f95b2110d6508d13b6a4
parenta3e70e77d95c12e3fe11e0a7ccb67e7195e0e1ab (diff)
downloadhid-tmff2-a9312ead5720922e1c06b541ea48b6db3f289d36.tar.gz
hid-tmff2-a9312ead5720922e1c06b541ea48b6db3f289d36.zip
Separate uaccess to another udev file
+ My understanding is that mainly the SteamDeck requires uaccess, most other systems can do without. Unfortunately, due to a bug in SDL, uaccess causes most other systems to not detect input, so we don't want uaccess to be on by default, at least for now
-rw-r--r--Makefile4
-rw-r--r--README.md2
-rw-r--r--udev/71-thrustmaster-steamdeck.rules22
-rw-r--r--udev/99-thrustmaster.rules10
4 files changed, 28 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index b0f06e8..ad52621 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,10 @@ install: deps/hid-tminit
udev-rules:
install -m 0644 udev/99-thrustmaster.rules /etc/udev/rules.d/
+.PHONY: steamdeck-rules
+steamdeck-rules:
+ install -m 0644 udev/71-thrustmaster-steamdeck.rules /etc/udev/rules.d/
+
clean: deps/hid-tminit
$(MAKE) -C $(KDIR) M=$(shell pwd) clean
diff --git a/README.md b/README.md
index 6e718ac..40af5de 100644
--- a/README.md
+++ b/README.md
@@ -78,6 +78,7 @@ sudo yum install linuxconsoletools # Fedora-based
make
sudo make install
sudo make udev-rules # optional but should fix some common issues
+ # sudo make steamdeck-rules # ONLY run if you're on a SteamDeck
```
+ Plug wheel back in
+ Reboot *(Optional, yet Recommended)*
@@ -91,6 +92,7 @@ sudo yum install linuxconsoletools # Fedora-based
cd hid-tmff2
sudo ./dkms/dkms-install.sh
sudo make udev-rules # optional but should fix some common issues
+ # sudo make steamdeck-rules # ONLY run if you're on a SteamDeck
```
+ Plug wheel back in
+ Reboot *(Optional, yet Recommended)*
diff --git a/udev/71-thrustmaster-steamdeck.rules b/udev/71-thrustmaster-steamdeck.rules
new file mode 100644
index 0000000..3f3ea1e
--- /dev/null
+++ b/udev/71-thrustmaster-steamdeck.rules
@@ -0,0 +1,22 @@
+# T300RS PS3 normal mode
+# allow userspace access to wheel, seems to be required for some systems,
+# mainly the SteamDeck I believe
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66e", MODE="0660", TAG+="uaccess"
+
+# T300RS PS3 advanced mode
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66f", MODE="0660", TAG+="uaccess"
+
+# T300RS PS4 mode
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66d", MODE="0660", TAG+="uaccess"
+
+# T248 + T128
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b696", MODE="0660", TAG+="uaccess"
+
+# TX
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b666", MODE="0660", TAG+="uaccess"
+
+# TSXW
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b692", MODE="0660", TAG+="uaccess"
+
+# TSPC
+KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b689", MODE="0660", TAG+="uaccess"
diff --git a/udev/99-thrustmaster.rules b/udev/99-thrustmaster.rules
index 3b469c0..e96cb02 100644
--- a/udev/99-thrustmaster.rules
+++ b/udev/99-thrustmaster.rules
@@ -1,39 +1,29 @@
# T300RS PS3 normal mode
-# allow userspace access to wheel, seems to be required for some systems,
-# apparently Proton as well
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66e", MODE="0660", TAG+="uaccess"
-
# remove deadzone for both evdev and jsdev subsystems
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66e", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66e", RUN+="/usr/bin/jscal -s 6,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"
# other wheels are similar, mainly with the idProduct being different
# T300RS PS3 advanced mode
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66f", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66f", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66f", RUN+="/usr/bin/jscal -s 6,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"
# T300RS PS4 mode
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66d", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66d", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66d", RUN+="/usr/bin/jscal -s 6,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"
# T248 + T128
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b696", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b696", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b696", RUN+="/usr/bin/jscal -s 11,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"
# TX
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b666", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b669", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b669", RUN+="/usr/bin/jscal -s 6,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"
# TSXW
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b692", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b692", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b692", RUN+="/usr/bin/jscal -s 6,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"
# TSPC
-KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b689", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b689", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b689", RUN+="/usr/bin/jscal -s 6,1,1,32767,32767,16384,16384,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,3,448,574,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912 /dev/input/js%n"