Life without windows

Ok, a few things have happened:

I played Minecraft with my wife and kids, and it was fun. Four people on the RaspberryPi4 server, total chaos 10/10.

I also downloaded and installed MSFS2024.
It runs great at everything on high settings it seems, using Proton10 beta I have 200+ FPS over Karlsruhe in a C172.
And @smokinhole wasn’t exaggerating, the visual quality IS mindblowing.

Sadly I could not enjoy it much, since apparently ultra settings don’t work for me yet because lack of Internet bandwith/stability (will retry that though) and because I had to use a PS4 controller since MSFS failed to see my TM16000 although it is plugged in and recognized by the system. (I see it in antimicrox and when using evtest). Seems like the TM16000 needs a custom driver to work with MSFS and that doesn’t exist in Linux. I am looking for a workaround there.

Today I tried my other stuff. The Saitek Yoke works fine out of the box.
However my Saitek Combat Rudder Pedals are not recognized ingame, and neither are my Saitek Radio Panel and Saitek Multi Panel.
Those are recognized by the system though, so I am researching this.
Seems like this article might help me, because without sudo evtest doesn’t see the devices, with sudo it does. So I probably need an udev rule.
https://forums.x-plane.org/forums/topic/143655-saitek-rudder-pedals-stopped-working/#comment-2524340

So we will see soon, I’ll test that tonight I think.

3 Likes

I applied the following udev rules:

#06a3:0764 Saitek Pro Flight Combat Rudder Pedals (the normal ones are 0763)
KERNEL==“event*”, SUBSYSTEMS==“input”, ATTRS{id/product}==“0764”, ATTRS{id/vendor}==“06a3”, MODE=“0666”, TAG+=“uaccess”

#06a3:0d05 Saitek PLC Pro Flight Radio Panel
KERNEL==“event*”, SUBSYSTEMS==“input”, ATTRS{id/product}==“0d05”, ATTRS{id/vendor}==“06a3”, MODE=“0666”, TAG+=“uaccess”

#06a3:0d06 Saitek PLC Flight Pro Multi Panel
KERNEL==“event*”, SUBSYSTEMS==“input”, ATTRS{id/product}==“0d06”, ATTRS{id/vendor}==“06a3”, MODE=“0666”, TAG+=“uaccess”

#044f:b10a ThrustMaster, Inc. T.16000M Joystick
KERNEL==“event*”, SUBSYSTEMS==“input”, ATTRS{id/product}==“b10a”, ATTRS{id/vendor}==“044f”, MODE=“0666”, TAG+=“uaccess”

and restarted the service via
sudo systemctl restart systemd-udevd.service

That did fix the pedals, and I could assign them in MSFS2024.
It also did something for the panels, they are now visible in evtest without sudo.
They still don’t show up in MSFS though.
For good measure I added a rule for the TM16000 but it seems it didn’t help for it either, as was expected.

1 Like

More tinkering!

I tried to get the panels working.
No success yet, but I learned a few things.

For some reason they are recognized as mice by the OS, which - as you can imagine - leads to some problems. They keep clicking on things.

I searched the web and found a few people from the past that ran into the same problem. One of them was almost there. I managed to piece the info together with the xorg documentation, and got this:

You need to put some files into /etc/X11/xorg.conf.d/

Content (in my case, YMMV because those panels have been produced with different names. You can figure out those names with the command xinput list):

50-saitekmultipanel.conf content:

Section "InputClass"
    Identifier "Saitek multi"
    MatchProduct "Logitech Logitech Flight Multi Panel"
    Option "ButtonMapping" "0 0 0 0 0 0 0 0"
EndSection

50-saitekradiopanel.conf content:

Section "InputClass"
    Identifier "Saitek radio"
        MatchProduct "Logitech Logitech Flight Radio Panel"
    Option "ButtonMapping" "0 0 0 0 0 0 0 0"
EndSection

EDIT: So now we have regular input devices. Now I need some software to read those inputs, then I can at least use the buttons. The displays will probably stay empty, but working buttons would at least be something that the panels can still do.

Talking about something means that you need names for things.

It seems that the reason why Linux (and thus MSFS) cannot hear anything from those devices is that there might be a problem between evdev (as testable working with evtest) and SDL (or was it joydev? I don’t know), which seems to be the API the system is using?

I don’t think I understand that properly yet. But I am getting dangerously close to driver programming it seems, and that sounds like trouble. :grimacing:

There has to be a simple tool that does the trick. I can see that all the buttons do buttons-stuff, I just need a software that puts that input into some shape that the programs can use.

I found a way, but it has a few downsides:

There is a tool named xboxdrv that can be used to turn eventdev inputs into those of an Xbox360 controller. MSFS knows how to handle those.

So you have to build a config file which takes the button names from evtest and maps them to button names of the Xbox360 controller, then run the tool in the background. You can then launch MSFS and assign the buttons of your weird Xbox controller.

Sadly MSFS is too much built for that controller. You cannot turn off the menu navigation it seems. So you have to be a bit careful with the assignments.

I also haven’t tried yet if the game can handle more than one Xbox360 controller at the same time. I think it cannot, so I have to find a way to make my two panels work at the same time.

But maybe I’ll find another tool, now that I know that I am searching for.

And I will definitely check if I can turn my TM16000 into an Xbox360 controller to make it work. That should be easier than the panels.

So much to try, so little time…

2 Likes

Hmpf. Today wasn’t a good day.

I tried to get OpenTrack working with MSFS and failed. Tried all modes, and even the Windows binary via Steam Proton. Just no reaction from MSFS2024, no clue why. And I know no way to debug either.

I also couldn’t quite find a good way to get the controller to work. I can do some basic stuff but I need to plan a good layout to get as much functionality as possible. Today wasn’t a good day for planning, work got into my head too much.

So I decided to go watch some TV instead, and that’s when I noticed that my TV has died. Grrr…

Lucky for you, June is a good month to get a TV for half the price. Got my LG OLED for 1000€ and still love the picture every time I watch something. They usually sell for 2000€.

@Aginor you inspired me.

Seriously though, I was very unsure if the upgrade will be worth it, but there will be no benchmarks:

I already sold the RTX 3080 :grimacing:

2 Likes

Small progress today.

I have now tried around 60 or 70 configurations of Opentrack. Native, via wine, via half a dozen proton versions. All work internally, none works for MSFS2024.
The only thing I might get to work is 3DOF via joystick emulation. Better than nothing but not what I wanted. We will see.

As for the panels:
I once again adjusted my udev rules (after some light documentation reading).
I added the “ENV” part, which forces the system to see those things as joysticks.

That makes them appear in antimicrox, which in turn means that I can assign their buttons to keyboard keypresses. I can work with that, so I will try to get the panels working in MSFS2024 that way.


#06a3:0764 Saitek Pro Flight Combat Rudder Pedals (the normal ones are 0763)
KERNEL=="event*", SUBSYSTEMS=="input", ATTRS{id/product}=="0764", ATTRS{id/vendor}=="06a3", ENV{ID_INPUT_JOYSTICK}="1", MODE="0666", TAG+="uaccess"

#06a3:0d05 Saitek PLC Pro Flight Radio Panel
KERNEL=="event*", SUBSYSTEMS=="input", ATTRS{id/product}=="0d05", ATTRS{id/vendor}=="06a3", ENV{ID_INPUT_JOYSTICK}="1", MODE="0666", TAG+="uaccess"

#06a3:0d06 Saitek PLC Flight Pro Multi Panel
KERNEL=="event*", SUBSYSTEMS=="input", ATTRS{id/product}=="0d06", ATTRS{id/vendor}=="06a3", ENV{ID_INPUT_JOYSTICK}="1", MODE="0666", TAG+="uaccess"

#044f:b10a ThrustMaster, Inc. T.16000M Joystick
KERNEL=="event*", SUBSYSTEMS=="input", ATTRS{id/product}=="b10a", ATTRS{id/vendor}=="044f", ENV{ID_INPUT_JOYSTICK}="1", MODE="0666", TAG+="uaccess"

Still haven’t played a lot, but I am slowly getting there. :slight_smile:

2 Likes

Meanwhile I solved the problem with the FPS not showing in games that have an additional launcher software:

I installed a software named gamescope.
Originally it was made to rescale outputs or something.

I had already installed Mangohud so this configuration (launch options in Steam) works for Jedi Survivor:

gamescope -f -W 1920 -H 1080 -r 60 --mangoapp – %command%

You have to redefine the resolution and refresh rate of your monitor, and then add the “–mangoapp” option if you want that. The “-f” forces fullscreen mode.

Works decently. I play in 1080p with everything including raytracing on maximum.
The screenshot doesn’t do it justice, the game looks gorgeous.

Lowest FPS I’ve seen was around 80, most of the time it runs above 100FPS. If I turn off raytracing it is 140FPS.
I played a bit, just wasn’t keen on tinkering today after a rough day at work.

I also bought a DVI → HDMI adapter (my old one somehow died) to connect my second screen again. It is just an old (almost 20 years I think) 1280x1024 but even a small second screen is really useful. Also works fine.

2 Likes

So I got an RX 9070 XT too, the Powercolor Hellhound as it seemed to have the best quiet cooling at a low price, for a 9070XT.
Yesterday I finally did a quick test in DCS with this brand new card on my old Windows 10 install with old WMR software as XR runtime and my old HP Reverb G2 and it wasn’t great. Quite a bit of stuttering. It should get less after DCS has had time to compile the shaders again. I could also try different XR runtimes, but Windows 10 only has 20 weeks left to live anyways, so instead I’ll invest my next tinkering window in Linux.

I initially wanted to go with Fedora, because of the combination of recent software and stable releases. Even though I don’t like RPM’s tiny packages: I prefer Arch and Ubuntu-based where everything just works instead of requiring a bunch of optional library packages for some features.

But after reading a few benchmark articles, I was interested. Recalling my previous experience when I ran EndeavourOS for a year (also Archlinux-based), there were very few breaking changes (I think 2 or 3 over the course of a year, only one of which impacted me because of my programming work (JDK packaging change)). If my main usecase is gaming, performance is important.

And CachyOS makes the setup of gaming apps really easy:

sudo pacman -S cachyos-gaming-meta
sudo pacman -S cachyos-gaming-applications

And then you’ve got everything you need for Steam and non-Steam games, with highly optimized apps.

Envision and Monado should make my HP Reverb G2 usable for the foreseeable future, and if I can get DCS working with it, I don’t need Windows anymore.

https://vronlinux.org/ has at least one geek who got DCS working with Monado (XR runtime fully compatible with Reverb), and a link to a Matrix chat of more pioneering combat penguins

To be continued, as I had to go protest against fascism out in the rain today. Would have much preferred to tinker with computers but it had to be done…

3 Likes

The mandatory pictures


2 Likes

Nice!

Yeah, I also did some research when I had to decide which distro to go for, and CachyOS looks pretty good. Just the right balance between flexibility and stability.

And so far I cannot complain.

Plus: If you go for CachyOS we can help each other better. :slight_smile:

Today I had a network driver crash. Had to reboot to get it running again. Not sure what happened, but I have a log and will investigate. I hope it really is just the driver and not the hardware.

2 Likes

Yeah CachyOS is a great balance between ease of use and performance. The only criticism of it that I found is that the aggressive performance optimizations sometimes come at the cost of stability. If it’s a problem, we can always switch the repo sources over to upstream Arch.
The defaults are great. Nice themes, fish as a shell, and when I install zsh, I automatically get a PowerLevel10k setup for a nice customized prompt. Gonna copy that one over to my dotfiles.

This is really useful (and slightly intimidating) stuff for getting DCS to run on Linux:

Also a good reminder to create a Matrix account, to chat to all the DCS Linux nerds

2 Likes

I investigated the network problem and it seems that it is a problem on the ASUS board, the intel network driver to be precise.

The recommendation is to add these settings to the line GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub

pcie_port_pm=off pcie_aspm.policy=performance

it turns off the power management of the network card, which seems to be the root cause of the problem. We’ll see if that helps, the crash is rare so I will probably not know until in two or three weeks.

2 Likes

Installing DCSW right now, with the guide posted above. So far it is only the launcher, downloading tons of stuff, so I haven’t gotten very far yet.

Meanwhile I tried connecting my Thrustmaster TH8A shifter.
Seems to work, at least I can see it in evtest-qt and in antimicrox. I will try it in a game (BeamNG drive probably) next week.

1 Like

DCS installed fine, using Lutris.

I haven’t configured any winetricks or runner options yet, but just out of curiosity I started it up.
It seems to run fine out of the box. Sadly I couldn’t test it much further since I cannot control the aircraft. My pedals work, but my TM16000 is not recognized.
I tried a few things from the hoggit tricks page but failed.

1 Like

Sorry to derail - I have had “install Arch Linux on test system” on my to-do list for a while, is CatchyOS still reasonably representative of Arch just with some tweaks for stability or have they changed a lot?

1 Like

I haven’t used Arch in a long time so I am the wrong person to ask that, but it seems to me that CachyOS is fully compatible with anything Arch, so I guess it is reasonably close, while bringing some extra stuff in its own repos. Maybe like Mint and Ubuntu?

Meanwhile:
I got the TM16000 and OpenTrack running in DCSW. So far I’ve only flown one quickstart mission in the Su-25T over the caucasus and it looks OK, but none of my two dozen “flights” lasted more than two minutes to test stuff.

For OpenTrack the solution was something obvious that I missed because apparently I don’t understand wine: I didn’t run OpenTrack and DCSW in the same wine prefix, but you have to do that. I couldn’t get the native Linux version of OpenTrack running with DCS, but the portable Windows version installed via Lutris works. I still have to do some configuration though, the curves are a bit off.

As for the TM16000, that’s a weird one.
DCSW didn’t want to recognize it. So I went ahead and emulated a XBox360 controller (via xboxdrv) and that worked. I just was a bit sad because I couldn’t use all of my buttons (the TM has 16, the XBox360 controller has 12 or 13) but it works.
After I had it set up I played around with the OpenTrack problem that I had not solved yet at this point, and during that process I switched around between the proton and wine versions to see if any of them worked differently.
They do. Proton-GE (latest) and the standard Lutris Proton (8.26 or so?) Both work for the DCS.exe, but only the Lutris standard one works for the launcher.
Anyway, I did that switching around and… suddenly the TM16000 is recognized natively by DCSW, without my emulation, in both configurations. I am not sure why, which - as an engineer - bothers me a bit but, you know, gift horses or something.

And then it was two o’clock in the morning and I am very tired today. Let’s see if I can do some proper testing in DCS tonight, I am curious if everything works. The TM16000 is kinda holding me back though (I don’t have the throttle, just the stick).

2 Likes

Gah, this is going to be another day without playing I guess…

I thought: Hey, that TM16000 (I only have the stick) doesn’t have enough buttons, I need a HOTAS. So I connected my old G940 and it…kinda works in Linux. Sadly the driver doesn’t recognize all the axes, and even worse: The hats don’t work.

So right now I am searching for a driver. Doesn’t look too good though, so after 15 years it seems like I have to retire the thing. Damn, it was my first FFB stick and my first proper HOTAS.

EDIT: I am installing the P-51 and the C-101 though, to check out the rest of the sim.

2 Likes