Steam for Linux

Steam for Linux

usb handbrake no longer being detected in Proton
My usb handbrake is no longer being detected within Proton.

This device was working fine in various games last time I used it about 2/3 weeks ago last time I tried (Dirt Rally1/2, EA WRC, WRC 10, WRC Generations) and now suddenly its not working in any of them.

The device is still being detected by:
* the O/S correctly.
* jstest-gtk lists it and can be calibrated just like before.
* sdl-jstest/sdl2-jstest see it correctly.
* evtest sees it.
* Steam itself sees it.

If I run native software outside of Steam its working ok.

If I run software in WINE (via Lutris) its working fine, using wine-ge-8-25-x86_64 to run the Rally Sims Fans version of Richard Burns Rally.

It does not seem to matter which version of Proton I use, 6.3, 7, 8, 9/Experimental.

If I run joy.cpl outside of Steam (without Steam active) via Protontricks:
SDL_JOYSTICK_DEVICE=/dev/input/js0 protontricks -c 'wine control joy.cpl' nnnnnnn
It no longer sees my usb handbrake, when it used too.

I noticed that Steam and Steam Runtimes have moved over to SDL3, so wondered if it was that and have just spent a large amount of time converting sdl2-jstest to sdl3-jstest only to find that it is working fine under SDL3 too!

$ LD_LIBRARY_PATH=/home/[user]/.steam/debian-installation/ubuntu12_64 ./sdl3-jstest -l Found 1 joystick(s) Joystick Name: 'wch.cn Hand Brake' Joystick GUID: 0300a1db861a00003a6d000000010000 Joystick Number: 0 Number of Axes: 1 Number of Buttons: 8 Number of Hats: 0 Number of Balls: 0

Anyone else suffering from this? Or have a solution?
< >
Viser 1-3 af 3 kommentarer
Tony Pond 21. okt. kl. 11:30 
I worked out a solution, seems like the newer version of SDL2 in Runtime Sniper does not find my handbrake when run inside a pressure vessel (oddly it seems to find it when its used with sdl2-jstest via LD_PRELOAD out side of a pressure vessel).

So all I did to resolve it was to rename the Runtime Sniper lib SDL2 out of the way and copy my system version of SDL2 into the same directory giving it the name expected by Runtime Sniper.

Runtime Sniper location for me: /home/$USER/.steam/debian-installation/steamapps/common/SteamLinuxRuntime_sniper/sniper_platform_0.20240916.101795/files/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.3000.7 System SDL2 version is: /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.2600.5

I expect that to get destroyed upon a Runtime Sniper update.

You could probably just use a symbolic link to point to the system version, haven't tried it yet (I assume the pressure vessel does some voodoo as it make the 3000.7 version appear in /usr/lib/x86_64-linux-gnu/ even though its not if you do some lsof | grep libSDL2 when proton is running).

May have to replace the 32bit version as well depending on game title.

Either way Handbrake working again under Steam/Proton - finally! :)
Sidst redigeret af Tony Pond; 21. okt. kl. 12:08
Tony Pond 21. okt. kl. 12:05 
Just for completion, using:

WINEDEBUG=+xinput,+hid,+hidp,+hid_report,+plugplay SDL_JOYSTICK_DEVICE=/dev/input/js0 protontricks -c 'wine control joy.cpl' NNNNNN
vs the system version of WINE I could see that SDL under Proton was not adding my device at all, it was missing:
0090:trace:hid:bus_main_thread L"SDL" main loop started 0090:trace:hid:sdl_add_device Making up serial number for wch.cn Hand Brake: 0000a1db7763682e636e2048616e6400.0 0090:trace:hid:sdl_add_device joystick id 0, axis_offset 0, desc {vid 0000, pid 0000, version 0000, input -1, uid 00000000, is_gamepad 0}.

Whilst the WINE/Window Joystick control panel was open and active (and no other SDL based software running) to find all versions of libSDL currently open I used:
lsof | grep libSDL winedevic 9455 dirt mem REG 259,1 7625517 /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.3000.7 (stat: No such file or directory)


Which (eventually) turns out is the Runtime Sniper version of SDL2, but notice its claiming to be a system lib and its not actually in this location at all - that file does not exist! So a not so quick search of the "~/.steam" directory multiple versions of it was found (both 32 and 64 bit versions).
Tony Pond 23. okt. kl. 8:31 
And the VERSIONS.txt file in the ".steam/debian-installation/steamapps/common/SteamLinuxRuntime_sniper" contains:

#Name Version Runtime Runtime_Version Comment depot 0.20240916.101795 # Overall version number pressure-vessel 0.20240916.0 scout # pressure-vessel-bin.tar.gz scripts 0.20240916.0 # from steam-runtime-tools sniper 0.20240916.101795 sniper 0.20240916.101795 # sniper_platform_0.20240916.101795/
< >
Viser 1-3 af 3 kommentarer
Per side: 1530 50