protonscr

Steam refuses to recognize HOTAS - and it's not permissions this time

steamopen General controller / Steam Input
ValveSoftware/steam-for-linux#8201 · opened 2021-11-02 by acebone · updated 2025-11-14 · 5 comments · github
1 matching comments, n / p to jump
Aacebone 2021-11-02 github

Now it works. I have no idea why or what, but it works. Please close this ticket as I am no longer able to reproduce the error.

Systeminformation

Steam-client: Oct. 13 2021, at 19:47:24
Distribution: Ubuntu 20.04
Client beta: Currently no - but this bug affects both BETA and stable
Checked for system updates: Yes
Install-packages:

steam:i386		1:1.0.0.61-2ubuntu3	i386  Valve's Steam digital software delivery system
steam-devices	1:1.0.0.61-2ubuntu3	 all  Device support for Steam-related hardware
steam-installer	1.0.0.61-2ubuntu3	 all  Installer for Valve's Steam digital software delivery system
steamcmd:i386	0~20180105-3  i386  Command-line interface for Valve's Steam

Issue

Steam refuses to recognize USB-connected device Thrustmaster T.16000m (t16k) which is a HOTAS-style joystick with 16 buttons and 5 axis.

Steps to reproduce:

Connect the t16k to a functioning USB-port

Optional: Check that the joystick is connected and recognized by the OS using jstest or jstest-gtk.

Start Steam (non-Big Picture)

Open menu Steam->settings. Go to tab "controller". Click button "GENERAL CONTROLLER SETTINGS"

*Expected result:

The t16k should be recognized and listed as a device (preferably of type joystick)

Actual result:

The t16k is not listed at all. Also there is no "generic controller" representation of it.

Observations

It is NOT a permissions issue

Many complaints of devices not getting recognized by the Steam-client has been solved by adding a udev-rule to the system that sets permissions '666' on the symlinks in /dev/input/

That is not the problem/solution here.

  1. Other devices are recognized, and they are created with the systems default permissions.

  2. I've added a udev-rule that sets permissions to '666' and changes the owner to my account and group acces to the group 'input' of which my account is a member.

esm- /dev/input: ll js*
crw-rw-rw-+ 1 esm  input 13, 0 Nov  2 18:15 js0
crw-rw-r--+ 1 root input 13, 1 Nov  2 20:14 js1
crw-rw-r--  1 root input 13, 2 Nov  2 20:14 js2
crw-rw-r--+ 1 root input 13, 3 Nov  2 20:14 js3
crw-rw-r--  1 root input 13, 4 Nov  2 20:14 js4

In the above output js0 is the t16k. As you can see the owner is my account (esm), and the permissions are set to '666'.

As far as I know, the steam-client is picking the event-links, not the js-links. But permissions are equally set on the eventlinks.

crw-rw-rw-+ 1 esm input 13, 75 Nov  2 18:16 ../event11
crw-rw```+ 1 root input 13, 92 Nov  2 20:14 ../event28

In the above output, event11 is the t16k with lax permissions, and event28 is my tablet with system-default permissions.

The Steam-client will actually recognize my tablet, and present it to the user as a 'generic gamepad' - however it will not accept any input from it (neither will jstest-gtk - that's ok, it's not a gaming-device).

By test I have concluded that it doesn't matter if I use lax permissions or let the system set it's default permissions: Steam is not recognizing the t16k

T16k is recognized and partly functional if it is emulating another
controller.

There are (at least) two pieces of software for linux that can help letting a usb-device emulate being another device.

One is xboxdrv, that can take any controller/HOTAS etc ... and remap it's buttons and expose it as a (virtual) X-box controller.

Another is 'unijoy'. A tool that let's you merge two or more controllers into one virtual device. Of course you can also just 'merge' one device, and let that become a new virtual controller.

With both methods Steam recognizes the new virtual device and presents it to the user as an 'Xbox One Controller'. Both the 'CALIBRATE' and the 'DEFINE LAYOUT' options of the Controller Settings screen reacts to input from the virtual device, and I can actually configure it as normal for an xbox-controller. Sadly the input from the virtual device is not sent to the game (Il2-Sturmovik: Battle of Stalingrad. App ID: 307960, from now on called BoS).

BoS is able to use an xbox-controller for input as seen in this youtube video by user Wanganui Wildcat: https://www.youtube.com/watch?v=OIGmyY8whC4, so it's likely never receiving any input from steam.

The game (BoS) recognizes the t16k if run by vanilla-wine rather than steam

BoS recognizing T16k

I was able to start BoS using the launcher software Lutrix. The game recognized the t16k immediately as seen in above picture.

This is the same steam-installation of the game, not a standalone installation. Of course, being started outside Steam, all content in the game was locked and unplayable, but this shows, that the game-installation is able to recognize the device, if it is run by my default wine-installation.

Llhassell 2025-04-05 github

Has anyone found a workaround for this?

Aacebone 2025-04-05 github

Sorry - I never found a workaround, it just worked all of a sudden

Jjoshlitherland 2025-06-04 github

I'm encountering seemingly the same issue right now with the same HOTAS setup. Proton 9.x versions, and GloriousEggroll builds based on them work. Proton 10.x versions, and corresponding GE builds do not work. I'm playing Elite Dangerous and making no other config changes other than forcing the use of a specific version of compatibility tool. Results so far:

  • Proton 9.0-4: WORKS
  • GE-Proton 9-26: WORKS
  • Proton 10.0-1 (beta): Doesn't work
  • Proton Experimental (as of this posting on 4 June 2025): Doesn't work
  • GE-Proton 10-4: Doesn't work
Ppolyv0x 2025-06-07 github

Having the same issue.
On arch based distro with 6.14 kernel
Proton 9.0-4 seems to work. Input device not visible (not working) as of June 7 2025

MMailerdaimon 2025-11-14 github

Proton Hotfix seems to work as of now (14. November 2025)

Proton versions