I am a flight simmer. I play Microsoft Flight Simulator 2024, as well as Elite Dangerous and other various flying games. I have a Virpil stick (VPC Stick MT-50CM3
) and throttle (VPC MongoosT-50CM2
) (purchased as a bundle), as well as a Thrustmaster T-Pendular Rudder. If you’re a flight simmer, this is awesome equipment.
Unfortunately, out of the box, they didn’t work on Linux for me with Steam and Proton. After hunting around a number of hours, I finally found a solution that enables all three controllers to work on Linux, with Steam and Proton.
A note on udev rules and proton wine regedits#
Many people out there are saying you need to add udev rules for some or all of these devices. That appears to have no impact on me either way. Granted, I am using Arch Linux and that has an existing rule for joysticks. I didn’t actually end up needing any additional udev rules.
/etc/udev/rules.d/99-joystick.rules
with this content:SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3344", MODE="0660" GROUP="mattmoore"
SUBSYSTEM=="usb", ATTRS{idVendor}=="3344", MODE="0660" GROUP="mattmoore"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="044f", MODE="0660" GROUP="mattmoore"
SUBSYSTEM=="usb", ATTRS{idVendor}=="044f", MODE="0660" GROUP="mattmoore"
Then, reload your udev configuration and retrigger:
sudo udevadm control --reload-rules && sudo udevadm trigger
…and that should take care of Ubuntu (at least, 25.04).
Others say you need hacks made to your wine windows registry. I actually experimented with these, and had some of them work, but ultimately I found that I still had to add PROTON_ENABLE_HIDRAW
, and that still wouldn’t work with all 3 controllers (I could only get 2 at a time to work).
I’d recommend not mucking about with your registry, or udev rules, unless for some reason your distro needs it. The simplest, least dangerous way to do this is with GloriousEggroll’s proton.
1. Install GloriousEggroll proton - official proton is broken#
For these controls to work, you want to have proton recognize them as HID raw devices. I won’t bother going into exactly what an HID raw device is - there are plenty of resources on that topic already. Here I’ll focus on getting this to work on proton.
Proton has a launch option PROTON_ENABLE_HIDRAW
that allows you to specify devices you want to treat as HID raw input, instead of defaulting to xinput. Unfortunately, at the time of this post, the official proton (pretty much all versions) is broken with hidraw devices.
However, GloriousEggroll’s Proton 10.10 works.
2. Get controller identifiers#
You’ll need the vendor and product IDs for each controller. You can view all the USB devices connected in Linux with lsusb
.
Virpil’s vendor ID is 3344
. ThrustMaster’s vendor ID is 044f
. You can either look this up with a plain old lsusb
, as mentioned above, or you can filter lsusb
like so:
lsusb | grep '3344:\|ThrustMaster'
Bus 001 Device 002: ID 044f:b68f ThrustMaster, Inc. T-Pendular-Rudder
Bus 007 Device 003: ID 3344:0391 Leaguer Microelectronics (LME) VPC Stick MT-50CM3
Bus 009 Device 006: ID 3344:0194 Leaguer Microelectronics (LME) VPC MongoosT-50CM3
Virpil Constellation Alpha Prime stick shows up with a vendor ID of 3344
and product ID of 0391
.
Virpil MongoosT-50CM3 Throttle shows up with a vendor ID of 3344
and product ID of 0194
.
ThrustMaster Pendular Rudder shows up with a vendor ID of 044f
and a product ID of b68f
.
3. Steam launch options#
Set your game to use the GloriousEggroll version of proton. Then add these vendor/product IDs to your steam launch options for a given game:
PROTON_ENABLE_HIDRAW=0x3344/0x0391,0x3344/0x0194,0x044f/0xb68f SDL_JOYSTICK_HIDAPI=0 %command%