Steam for Linux

Steam for Linux

十分な評価がありません
[Linux] How to play Games on Manjaro (Arch)
作者: Darksidewalker
How to play most (all?) games on Linux.

For all who want to game on Linux. This is a HowTo for Arch based distros like Manjaro.

Benefits
  • More stable (fewer memory leaks, crashes and an overall more robust system)
  • More FPS most of the time
  • Native DXVK
  • Included postprocessing with vkBasalt (like Reshade)
  • Ressource footprint of your OS is multiple times lower as of W11
  • Make more efficient use of your hardware
  • More custom options for the games (if you like to dive deeper)
   
アワード
お気に入り
お気に入り
お気に入りから削除
Why Linux?
Nowadays, Linux is a real alternative as a game operating system:
  • Popular and in active development (also thanks to Steamdeck/Valve, Homeentertainmen/Kodi and many more).
  • Up-to-date Distrubutions like Arch-Derivate (Manjaro) - Up-to-date drivers and software
  • Extremely customizable
  • Stay in control of your operating system
  • Better file systems
  • Extremely stable
  • Minimal own resource consumption (more RAM, CPU and SSD for your programs)
  • Software for free and at your fingertips
  • Friendly communities

But can it run the latest games? - Yes, it can! Even older ones that Windows can no longer run.

Everything inside the
Codebox
can be copied to the Terminal.
Needed Software
What do we need to use all of our great games?
  • Linux OS ofc, like Manjaro
  • Graphics card drivers (if not integrated)
  • Vulkan (Low-Level API like DirectX)
  • 32-Bit-Support (Steam and some games are only 32-Bit Software)
  • Wine (compatibility layer to Windows programs)
  • Steam (Proton)

That's it already? - Yes, that's all you need to play on Linux.

1. Graphics card drivers (if not integrated)
systemsettings msm_mhwd

2. Install with only 1 command:
sudo pacman -Syu && \ sudo pacman -S steam linux-steam-integration steam-native-runtime wine winetricks wine-mono wine-gecko vulkan-icd-loader vulkan-headers lib32-vulkan-icd-loader vulkan-tools

Explanation - For the interested

So what did we do and how would it be to do it all in single steps?

sudo
Invokes the following command as administrator (root).

sudo pacman -Syu
Update the software database and update all software packages already installed.
S synchronizes
y downloads current package databases from the server
u updates installed packages

vulkan-icd-loader vulkan-headers lib32-vulkan-icd-loader vulkan-tools
Installing the Vulkan API

sudo pacman -S wine winetricks wine-mono wine-gecko
Install Wine and the additional .Net and IE frameworks. Winetricks service to use Wine graphically.

sudo pacman -S steam linux-steam-integration steam-native-runtime
Install Steam and the additional Linux integration.
Optional Software
But of course we can optimize it with some more tools...
  • Gamemode (more FPS and more aggressive energy mode)
  • MangoHud (like Rivatuner/RTSS)
  • vkBasalt (like Reshade)
  • Proton-GE (optimized Proton version)
  • GOverlay (GUI for MangoHud and vkBasalt)
  • ProtobUp-QT (GUI for quick install/management of current Proton/Wine versions)

Install with only 1 command:
sudo sed -Ei '/EnableAUR/s/^#//' /etc/pamac.conf && \ sudo pacman -Syu && \ sudo pacman -S gamemode lib32-gamemode mangohud mangohud-common lib32-mangohud && \ sudo pamac build vkbasalt lib32-vkbasalt goverlay-bin protonup-qt
Or optionally graphically via the integrated software manager.

For those interested:
Here's a quick explanation of the command...
sudo sed -Ei '/EnableAUR/s/^#//' /etc/pamac.conf
Enables AUR (unofficial software for Arch in the software manager GUI).

sudo pacman -Syu && \ sudo pacman -S gamemode lib32-gamemode mangohud mangohud-common lib32-mangohud && \ sudo pamac build vkbasalt lib32-vkbasalt goverlay-bin protonup-qt
We update the software sources and install, as before, the 64 and 32 bit versions of Gamemode, MongoHud, vkBasalt, GOverlay and protonup-qt.
Steam - Configuration
Activate Proton version for all games

Activate Proton for a specific game only

Activate Controller-Support
There is a Steam-Bug and this is required to enable some controllers, such as DualSense (PS5), to work properly with Steam in wireless mode. Choose a wanted Layout there.
Steam - Launch options
Go to Launch options for the game of choice and type in:

At least to enable the gamemode:
gamemoderun %command%

For advanced features:
PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr gamemoderun %command%
NVAPI enables advanced Nvidia features like Reflex/DLSS and DRX enables ray tracing.

Add MangoHud overlay on top:
PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr mangohud gamemoderun %command%

Add vkbasalt on top:
PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr mangohud ENABLE_VKBASALT=1 gamemoderun %command%
To configure MongoHud and vkBasalt you may use GOverlay.

For those interested:

Not all options and add-ons will work in all games, so you may have to experiment to see if the game runs with all options or not.

There is many more things you can do ... here are some sources:
https://github.com/jp7677/dxvk-nvapi
https://github.com/DadSchoorse/vkBasalt
https://github.com/flightlessmango/MangoHud
https://github.com/Plagman/gamescope
OS Optimizations
Check and increase vm.max_map_count

Check with:
cat /proc/sys/vm/max_map_count
There should be something over 524288 for some demanding games.

I'll set mine to 1048576
sudo touch /usr/lib/sysctl.d/99-vm-max_map_count.conf && sudo echo "vm.max_map_count=1048576" >> /usr/lib/sysctl.d/99-vm-max_map_count.conf && sudo sysctl --system

Enable nvidia-drm for gamescope

Edit the bootloader Grub:
sudo nano /etc/default/grub
Find and insert:
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
Execute
sudo update-grub
Reboot.
sudo reboot now
Gamescope (optional)
Here are an example for Gamescope (like on the steamdeck)

It runs on Mesa + AMD or Intel, and could be made to run on other Mesa/DRM drivers with minimal work. AMD requires Mesa 20.3+, Intel requires Mesa 21.2+. For NVIDIA's proprietary driver, version 515.43.04+ is required (make sure the nvidia-drm.modeset=1 kernel parameter is set).

This even adds options to games that do not natively support them.

Add gamescope for even more options:
gamescope -w 1920 -h 1080 -W 2560 -H 1440 -U -f -e -r 60 --rt -- PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr11 mangohud ENABLE_VKBASALT=1 gamemoderun %command%
Here we force FSR 1 as Upscaler with Fullscreen to upscaled WQHD, without Steamoverlay and capped 60 FPS plus realtime scheduling.

You could go on with addons like this.
NVIDIA Optimizations
Optional settings for NVIDIA cards

You can manually edit the nvidia-configuration under
sudo nano /etc/X11/mhwd.d/nvidia.conf

TripleBuffer
Add in this line under the "Device" section between the other options. This will enable the TrippleBuffer for smoother inputs.
Option "TripleBuffer" "on"
If this option is enabled, OpenGL windows that sync to vblank and are double-buffered will be given a third buffer. This decreases the time an application stalls while waiting for vblank events, but increases latency slightly (delay between user input and displayed result).

Coolbits
If desired - Adding Coolbits under the "Device" section will enable Overclocking and Voltage-Control for the Nvidia-Driver.
Enables various unsupported features, such as support for GPU clock manipulation in the NV-CONTROL X extension.
WARNING: this may cause system damage and void warranties.
Option "Coolbits" "28"
Explanation:
4+8+16 = 28 ->
When "4" (Bit 2) is set in the "Coolbits" option value, the nvidia-settings Thermal Monitor page will allow configuration of GPU fan speed, on graphics boards with programmable fan capability.
When "8" (Bit 3) is set in the "Coolbits" option value, the PowerMizer page in the nvidia-settings control panel will display a table that allows setting per-clock domain and per-performance level offsets to apply to clock values. This is allowed on certain GeForce GPUs. Not all clock domains or performance levels may be modified. On GPUs based on the Pascal architecture the offset is applied to all performance levels.
When "16" (Bit 4) is set in the "Coolbits" option value, the nvidia-settings command line interface allows setting GPU overvoltage. This is allowed on certain GeForce GPUs.

Conclusion
This may look like this:

Force Full Composition Pipeline

!!! DON'T !!!

You will often read that you should enable this.

Just don't.

Here is why:
It will prevent most modern games from starting, and it will significantly increase the latency and power consumption of your GPU.
Better options are Adaptive VSYNC or VSYNC with MangoHud or in-game VSYNC if you experience screen tearing. You can also use GSYNC or FREESYNC.
5 件のコメント
Sean 2024年7月3日 5時30分 
Great stuff, love it. Thanks
Nevah 2024年3月28日 15時00分 
awesome, thanks a lot
was wondering why the games wouldn't start, then realized that I forgot to install wine!
:rwslugcat:
Darksidewalker  [作成者] 2024年1月12日 10時44分 
Many games have more fps, depending on your settings. The majority of games run just as well as MS and there is a minority that run less well.
I play all games on Manjaro, even the latest UE5 games.
Vega 2024年1月11日 11時53分 
How is the FPS on modern games running under Linux? I have been using Manjaro on my laptop that I bought for school awhile ago and I think I am fully ready to switch my desktop to Linux. The only thing holding me back is gaming
komasio71 2023年6月4日 12時11分 
Nice tutorial man
Please, if possible, make a one about Mint..