This document is a WORK IN PROGRESS.
This is just a quick personal cheat sheet: treat its contents with caution!
Steam¶
Steam is a digital distribution platform, which offers DRM, multiplayer gaming, video streaming and social networking services.
Reference(s)
Table of contents¶
Install¶
Make sure tmpfs
is well mounted in your fstab
(if not, add this line and reboot):
# vi /etc/fstab
> # to limit the size add e.g. size=768M to opts (default is 50%)
>
> #<fs> <mountpoint> <type> <opts> <dump/pass>
> shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Make sure you activated the tmpfs
kernel option CONFIG_TMPFS
in your kernel
config:
$ cd /usr/src/linux
# make nconfig # or `# make menuconfig`
# Enable tmpfs support
# Double check here: <https://wiki.gentoo.org/wiki/Steam#Kernel>
# Double check here: <https://wiki.gentoo.org/wiki/Tmpfs#Installation>
#
> File systems --->
> Pseudo filesystems --->
> [*] Tmpfs virtual memory file system support (former shm fs) # Symbol: TMPFS [=y]
> [ ] Optional drivers
Warning
After configuring the kernel don't forget to do a kernel make and rebuild!
Now install steam and it's dependencies:
Config¶
Avoid steam dotfile madness (still in progress)¶
Steam will create by default those dotfiles:
~/.steam
~/.steampath
->$HOME/.steam/sdk32/steam
~/.steampid
->$HOME/.steam/steam.pid
Additionally, it will also create a home file:
~/steam.desktop
I don't know what is the purpose of this last file (it might be just a desktop shortcut), but apparently it can be moved without blowing up steam:
Use¶
Run steam:
Proton¶
Reference(s)
Proton is a compatibility tool developed by Valve, for Steam, based on Wine and additional components. It allow games which are exclusive to Windows to run on the Linux operating system. (see compatibility list: https://www.protondb.com/).
Enable Proton¶
Proton needs to be enabled on Steam client:
- Steam > Settings > Steam Play
(You can enable Steam Play for games that have and have not been white listed by Valve in that dialog)
Force Proton¶
If needed, to force enable Proton or a specific version of Proton for a game, right click on the game, click Properties > General > Force the use of a specific Steam Play compatibility tool, and select the desired version. Doing so can also be used to force games that have a Linux port to use the Windows version.
Configure Proton¶
You can also configure some launch options for a game, right click on the game, click Properties > General > SET LAUNCH OPTIONS... See https://github.com/ValveSoftware/Proton/#runtime-config-options
Some various launch options:
> SET LAUNCH OPTIONS: PROTON_USE_WINED3D=1
> SET LAUNCH OPTIONS: PROTON_LOG=1 %command%
> SET LAUNCH OPTIONS: -nolauncher -nosplash -world=empty -skipintro
> SET LAUNCH OPTIONS: PROTON_FORCE_LARGE_ADDRESS_AWARE=1 PROTON_USE_D9VK=1 PROTON_NO_ESYNC=1 %command% -nolauncher -nosplash -world=empty -skipintro
Skip the game launcher and force BattlEye install:
> SET LAUNCH OPTIONS: -noLauncher -useBE # to
With dwm (<https://www.reddit.com/r/linux_gaming/comments/1j85oi/any_dwm_linux_gamer_how_do_you_play_games_with/>):
> SET LAUNCH OPTIONS: -sw -noborder
DXVK_HUD=fps,version This is a DXVK environment variables that generates on HUD on screen
telling you what version of DXVK you are running and what your FPS are. This is useful imo.
Here is an example i use for Hellblade again. Once again entered into the game properties as
launch options from steam:
> SET LAUNCH OPTIONS: DXVK_HUD=version %command%
> SET LAUNCH OPTIONS: setxkbmap us && %command% ; setxkbmap fr
dwm launch options
For dwm user: %command% -sw -noborder
might be good launch options.
Mordhau launch options
For Mordhau: VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" %command% -sw
-noborder
* getting the following problem for now: https://github.com/ValveSoftware/Proton/issues/2629#issuecomment-623485348
Halo MCC launch options
VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" %command% -sw -noborder
(see https://github.com/ValveSoftware/Proton/issues/2907)
TESO launch options
VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" %command% -sw -noborder
If you are stuck on the "loading" screen, this might be due to this bug https://bugs.gentoo.org/727262 : ca-certificates might need to be downgraded. On Gentoo you can downgrade it this way:
Elite Dangerous launch options
See https://www.protondb.com/users/287799351 See https://gist.github.com/Eeyoresyndrome/cdaa34e4335b386feac8f194a01da5e2
Launch options:
VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" %command% -sw -noborder
Tricks:
* Version of Proton:
* Downgrade dev-libs/nss
prior to 3.57:
* Restore wine/proton state by removing prefix and launching the game:
$ export WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/<APPID>/pfx"
or
$ export WINEPREFIX="/media/tera/Steam/steamapps/compatdata/<APPID>/pfx"
$ rm -rI "$WINEPREFIX"
wine-mono
: https://github.com/redmcg/wine-mono/releases
* Find Elite Dangerous game id: $ protontricks -s "Elite Dangerous"
, it should be 359320
* Run protontricks -c 'msiexec /i /media/tera/wine-mono-5.1.1.2_ED-x86.msi' 359320
* DEPRECATED:
* Run protontricks -c 'wine64 uninstaller' 359320
and uninstall any existing version of
'Wine Mono Runtime' (by selecting it and clicking 'Remove'). Then Click 'Install...' and
select the last release of wine-mono-*.msi
just downloaded.
Elite Dangerous alternative launch options
See https://www.protondb.com/users/287799351 See https://gist.github.com/Eeyoresyndrome/cdaa34e4335b386feac8f194a01da5e2
Launch options:
VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" %command% -sw -noborder
Tricks:
* Version of Proton: Proton-5.9-GE-8-ST
* Downgrade dev-libs/nss
prior to 3.57:
* Launch the game and let it fail.
* Run protontricks -c 'wine64 uninstaller' 359320
and uninstall any existing version of 'Wine
Mono Runtime' (by selecting it and clicking 'Remove').
* Run $ protontricks 359320 -q dotnet472 win7
which can take a long time to complete...
Proton Glorious Egroll (Proton-GE)¶
Reference(s)
Proton-GE is a custom Proton build with the most recent release of vanilla wine, with ffmpeg
enabled for faudio
by default, and all of Proton's patches ported over to be applied to wine, as
well as wine-staging
and vkd3d
.
Install Proton-GE (e.g. 5.4-GE-3
):
$ wget https://github.com/GloriousEggroll/proton-ge-custom/releases/download/5.4-GE-3/Proton-5.4-GE-3.tar.gz
$ tar -zxvf Proton-5.4-GE-3.tar.gz
$ rm Proton-5.4-GE-3.tar.gz
$ mkdir -p ~/.steam/root/compatibilitytools.d
$ mv Proton-5.4-GE-3 ~/.steam/root/compatibilitytools.d/
And restart steam. Now you should able to force the use of Proton-GE, the same way you can force the use of proton (see previous Force Proton section).
Is wine-mono
needed ?
see https://wiki.winehq.org/Mono
Protontricks¶
Protontricks is a simple wrapper that does winetricks things for Proton enabled games.
Reference(s)
The basic usage is as follows:
-
Find your game's App ID by searching for it
-
Run winetricks for the game
-
Run a custom command within game's installation directory
-
Run the protontricks GUI
-
Print the protontricks help message
-
Restore wine/proton state by removing prefix and relaunching the game:
AMDGPU vs AMDGPU-PRO¶
If you are using a Nvidia graphic card, this section doesn't concern you.
Users whose main use for their graphics card is gaming and other general home use graphical hardware acceleration should use open source AMDGPU driver.
Thus, the closed source AMDGPU-PRO driver is mostly useful to users who want to play games or use applications that rely on compatibility profiles, or want to run anything that uses Vulkan with advanced shaders, or want to fully exploit OpenCL.
Tip
So, in order to play to some games through compatibility tools like Proton: AMDGPU-PRO will be needed. Fortunately, it can be used per game, without being installed globally, like described below.
How to use AMDGPU-PRO per game:
-
Find and download your AMDGPU-PRO drivers here: https://www.amd.com/en/support ("Search for your product" and "Submit")
-
Download the Ubuntu x86 64-Bit latest version (if you are not on Debian, CentOS or RHEL, in this case download one of those version), e.g.
amdgpu-pro-20.20-1089974-ubuntu-20.04.tar.xz
. -
Unpack:
-
Unpack the Vulkan drivers deb file for 64-bit:
-
Unpack the
data.tar.xz
file which was inside the deb file: -
Move the extracted folder
opt/amdgpu-pro
from the archive to/opt/amdgpu-pro
: -
Start steam (or the Vulkan based game) with the following command:
OR Launch a game with this optionVK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json"
Note
See Phoronix benchmarks here: https://www.phoronix.com/scan.php?page=search&q=AMDGPU-PRO for more comparisons.
Troubleshooting¶
If any problem is encountered while playing:
- https://wiki.gentoo.org/wiki/Steam#Client_troubleshooting
- https://wiki.archlinux.org/index.php/Steam/Troubleshooting
Steam crash with Proton¶
Proton isn't always stable, sometimes a game crashes: it might crash it's window, steam or the graphic server...
If steam or the graphic server crashed, you might want to kill any wine
related services left:
$ pkill wineserver & pkill rpcss.exe & pkill explorer.exe & pkill svchost.exe & pkill winedevice.exe & pkill plugplay.exe & pkill services.exe & pkill bwrap`
htop
.
If this cheat sheet has been useful to you, then please consider leaving a star here.