Manjaro always sets my GX52 Joystick to js0. This only matters when I want to play Second Life, using the Firestorm viewer, which only sees js0. Firestorm and other Second Life viewers only see js0 where I want the Xbox controller to be. Here’s my lsusb:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 413c:1010 Dell Computer Corp. USB 2.0 Hub [MTT]
Bus 003 Device 003: ID 1532:0111 Razer USA, Ltd Nostromo
Bus 003 Device 004: ID 1bcf:08a0 Sunplus Innovation Technology Inc. Gaming mouse [Philips SPK9304]
Bus 003 Device 005: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 006: ID 413c:2110 Dell Computer Corp. Dell Wired Multimedia Keyboard
Bus 003 Device 007: ID 2357:0604 TP-Link TP-Link UB5A Adapter
Bus 003 Device 008: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 009: ID 1bcf:0005 Sunplus Innovation Technology Inc. Optical Mouse
Bus 003 Device 010: ID 0e6f:02e1 Logic3 PDP Wired Controller for Xbox Series X - Electric Carbon
Bus 003 Device 011: ID 06a3:075c Saitek PLC X52 Flight Controller
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 002: ID 05e3:0626 Genesys Logic, Inc. Hub
Bus 004 Device 003: ID 05e3:0626 Genesys Logic, Inc. Hub
The joysticks and a set of rudder pedals all work perfectly with Steam, Elite Dangerous, Flightgear, X-Plane and Star Citizen. My thought was to try and get Manjaro to reserve js0 for the Xbox controller, so after a lot of googling and some udev rule attempts using Google Gemini to help, e.g.:
When posting terminal output, copy the output and paste it here, wrapped in three (3) backticks, beforeANDafter the pasted text. Like this:
```
pasted text
```
Or three (3) tilde signs, like this:
~~~
pasted text
~~~
This will just cause it to be rendered like this:
Sed
sollicitudin dolor
eget nisl elit id
condimentum
arcu erat varius
cursus sem quis eros.
Instead of like this:
Sed sollicitudin dolor eget nisl elit id condimentum arcu erat varius cursus sem quis eros.
Alternatively, paste the text you wish to format as terminal output, select all pasted text, and click the </> button on the taskbar. This will indent the whole pasted section with one TAB, causing it to render the same way as described above.
Thereby increasing legibility thus making it easier for those trying to provide assistance.
For more information, please see:
As I’m a moderator on the forum, I have taken the liberty of doing this for you, this time.
Additionally
If your language isn’t English, please prepend any and all terminal commands with LC_ALL=C. For example:
LC_ALL=C bluetoothctl
This will just cause the terminal output to be in English, making it easier to understand and debug.
Note that the above text is partially pre-prepared as a general introduction for new forum Users. Please take the time to to understand how it is done and encourage quality responses.
The reason for this behavior is time-based numbering. If you plug in the joystick first and no other devices are connected, it gets the number 0.
That’s nonsense. It’s like trying to build a tent on top of a house. If the viewer can’t access symlinks like /dev/input/myjoystick, this approach doesn’t make sense.
You could theoretically try a dirty hack:
# 1. Temporarily delete the real node (don't worry, it's only in RAM)
sudo rm /dev/input/js0
# 2. Map the Xbox controller (js1) to js0
sudo ln -s /dev/input/js1 /dev/input/js0
# 3. Launch Firestorm
./firestorm
# 4. After the game ends, delete the fake...
sudo rm /dev/input/js0
# 5. ...and force the kernel to reassign the device to js0
sudo udevadm trigger --subsystem-match=input --action=add
Apologies, and thank you for your patience @Mirdarthos
Thank you @megavolt, the X52 gets JS0 regardless of when or where it’s plugged in. To get it to be JS1, you have to boot the pc xbox controller, then plug in the X52
Yes @alasta2259, you’ve just confirmed normal behavior. You can boot without any devices, then plug in the Xbox controller, which will then be assigned to js0. If you connect both while booting up, the one with the faster driver or hardware will be assigned to js0. The joystick is just faster
The problem is really the software, which doesn’t have the option to switch controllers.
Many thanks for the help. I had thought it might be possible to allocate a JS “Slot” as it were, you are saying it’s not, which is fair enough. The real issue is that the Firestorm Viewer cannot support the X52 and, in fact, can only support one controller at a time. I was trying to bodge my way around that issue What I have ended up doing is plugging the X52 into my powered hub, which has an on-off switch on it. Press to load the x52!