Steam: Difference between revisions

From Alpine Linux
(link to pmOS article)
 
(33 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.
This page explains how to run [https://store.steampowered.com/about/ Steam], a popular game distribution platform by Valve on Alpine Linux. Steam requires glibc to run, and thus won't run natively on Alpine Linux. The simplest approach is to run it as [[Flatpak]]. Other workarounds involve using a virtual machine.


{{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for support for issues with Steam on Alpine Linux.}}
== Installation ==
 
# Follow the [[Flatpak#Installing_Flatpak|Flatpak]] wiki page and ensure that [[Flatpak#Installing_Flatpak|Flathub repository]] is enabled.
# Install the Steam flatpak package from Flathub.{{Cmd|$ flatpak --user install com.valvesoftware.Steam}}
# After installation Steam can be started either using it's .desktop file or from the command line: {{Cmd|$ flatpak run com.valvesoftware.Steam}}
 
== Troubleshooting ==
 
=== My controllers aren't detected ===
 
By default Steam doesn't have permission to read your controllers.
This can be fixed by installing an [[udev]] rule from the official Steam package, but the udev rules are also available as an Alpine package.
 
  # apk add {{pkg|steam-devices|arch=x86_64}}
 
These udev rules rely on the <code>TAG+="uaccess"</code>, and are therefore only expected to work reliably when using [[Elogind]].
 
=== SteamVR won't launch ===
 
Out of the box SteamVR might not be able to launch and give you various errors. Steam tries to fix this itself by setting the right capabilities on the SteamVR binary, but this doesn't work in the Flatpak. Instead we'll have do it manually.
 
  # setcap CAP_SYS_NICE+ep ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
 
Then restart Steam.
 
There is an issue for this [https://github.com/flathub/com.valvesoftware.Steam/issues/636#issuecomment-779763326 on the Flathub repository].


== Installation ==
=== Steam - Error: OpenGL GLX extension not supported by display ===
 
Add the Mesa gallium driver and reboot your system.
 
# apk add {{pkg|mesa-dri-gallium|arch=x86_64}}
 
=== eventfd: Too many open files ===
 
Due to a low amount of allowed open file descriptors, Proton games may crash shortly after launching. This can be worked around by disabling esync but many games will perform measurably worse without it. Instead, user limits should be increased. In order to do this, you will need [[PAM]] and a PAM enabled login.
 
Add the following to <code>/etc/security/limits.conf</code>:
@users hard nofile 524288
 
{{Note|Although you should already belong to the users group, you can run <code>groups</code> to check.}}
 
Reboot and run <code>ulimit -Hn</code> to verify the new limits are applied.
 
=== dbus-launch: no such file or directory ===
 
Set up [[D-Bus|dbus]] for your session.
 
=== Steam games launched via Proton crash before creating a window ===
 
Instead of just using the in-Steam menu to install and select a Proton version, try installing the flatpak community build for Proton onto your system. There are several versions, depending on your desired stability, and the experimental version available in Flathub is called "com.valvesoftware.Steam.CompatibilityTool.Proton-Exp". After you install your chosen version, go into Steam to specify compatibility tool for a game as usual. The installed community build will now be an option. Select that and try launching the game again.
 
As your last resort, you can try installing [https://github.com/GloriousEggroll/proton-ge-custom proton-ge-custom], but please note that in order for this to be even detected by Steam, you will need to install Steam via Nix due to high level of isolation that Flatpaks utilize. This can however come at the expense of your [https://tosdr.org/en/service/180 privacy].


Steam requires glibc to run, and thus doesn't straight up run on Alpine Linux.
=== Steam spams dmesg with x86/split lock detection entries ===
To work around this problem, we'll use [https://wiki.alpinelinux.org/wiki/Flatpak Flatpak].
Make sure you have the Flathub repository installed.


  # apk add flatpak
Add the below line to {{path|/etc/sysctl.conf}}:
  $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
   kernel.split_lock_mitigate = 0
   $ flatpak install com.valvesoftware.Steam


After installation Steam can be started using it's .desktop file or on the command line:
=== Steam hangs on start with a steamwebhelper popup ===


  $ flatpak run com.valvesoftware.Steam
If this happens and {{path|~/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs/steamwebhelper.log}} says that you are missing X server or <var>DISPLAY</var>, it means your <var>DISPLAY</var> is not present in the activation environment. For more information please see https://github.com/ValveSoftware/steam-for-linux/issues/10554


== Troubleshooting ==
'''[[Sway]]''': go into your sway config file and add <var>DISPLAY</var> to the following line, then restart:
<pre>exec dbus-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway</pre>
For more information about this line, please see the Alpine Wiki's entry on Sway


=== My controllers aren't detected ===
'''Hyprland''': add an exec-once to the configuration file at {{path|~/.config/hypr/hyprland}} to set <var>DISPLAY</var>. Similarly to Sway you may already have a line that sets other variables. If so, add <var>DISPLAY</var> to the line. The line should look similar to this:


By default Steam doesn't have permission to read your controllers.
<pre>exec-once = dbus-update-activation-environment DISPLAY</pre>
This can be fixed by installing an udev rule from the official Steam package.


  $ curl -O https://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.68.tar.gz
== See Also ==
  $ tar xzf steam_1.0.0.68.tar.gz
* [[Gaming on Alpine|Gaming on Alpine Linux]]
  # install -Dm644 steam-launcher/subprojects/steam-devices/60-steam-input.rules -t /etc/udev/rules.d
* [[Flatpak]]
  # install -Dm644 steam-launcher/subprojects/steam-devices/60-steam-vr.rules -t /etc/udev/rules.d
* [https://wiki.postmarketos.org/wiki/Steam Steam on postmarketOS]


Make sure to replace "1.0.0.68" with the latest version of the Steam package.
[[category:Gaming]]
The versions available are listed at https://repo.steampowered.com/steam/pool/steam/s/steam

Latest revision as of 00:26, 12 July 2025

This page explains how to run Steam, a popular game distribution platform by Valve on Alpine Linux. Steam requires glibc to run, and thus won't run natively on Alpine Linux. The simplest approach is to run it as Flatpak. Other workarounds involve using a virtual machine.

Installation

  1. Follow the Flatpak wiki page and ensure that Flathub repository is enabled.
  2. Install the Steam flatpak package from Flathub.

    $ flatpak --user install com.valvesoftware.Steam

  3. After installation Steam can be started either using it's .desktop file or from the command line:

    $ flatpak run com.valvesoftware.Steam

Troubleshooting

My controllers aren't detected

By default Steam doesn't have permission to read your controllers. This can be fixed by installing an udev rule from the official Steam package, but the udev rules are also available as an Alpine package.

 # apk add steam-devices

These udev rules rely on the TAG+="uaccess", and are therefore only expected to work reliably when using Elogind.

SteamVR won't launch

Out of the box SteamVR might not be able to launch and give you various errors. Steam tries to fix this itself by setting the right capabilities on the SteamVR binary, but this doesn't work in the Flatpak. Instead we'll have do it manually.

 # setcap CAP_SYS_NICE+ep ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher

Then restart Steam.

There is an issue for this on the Flathub repository.

Steam - Error: OpenGL GLX extension not supported by display

Add the Mesa gallium driver and reboot your system.

# apk add mesa-dri-gallium

eventfd: Too many open files

Due to a low amount of allowed open file descriptors, Proton games may crash shortly after launching. This can be worked around by disabling esync but many games will perform measurably worse without it. Instead, user limits should be increased. In order to do this, you will need PAM and a PAM enabled login.

Add the following to /etc/security/limits.conf:

@users hard nofile 524288
Note: Although you should already belong to the users group, you can run groups to check.

Reboot and run ulimit -Hn to verify the new limits are applied.

dbus-launch: no such file or directory

Set up dbus for your session.

Steam games launched via Proton crash before creating a window

Instead of just using the in-Steam menu to install and select a Proton version, try installing the flatpak community build for Proton onto your system. There are several versions, depending on your desired stability, and the experimental version available in Flathub is called "com.valvesoftware.Steam.CompatibilityTool.Proton-Exp". After you install your chosen version, go into Steam to specify compatibility tool for a game as usual. The installed community build will now be an option. Select that and try launching the game again.

As your last resort, you can try installing proton-ge-custom, but please note that in order for this to be even detected by Steam, you will need to install Steam via Nix due to high level of isolation that Flatpaks utilize. This can however come at the expense of your privacy.

Steam spams dmesg with x86/split lock detection entries

Add the below line to /etc/sysctl.conf:

 kernel.split_lock_mitigate = 0

Steam hangs on start with a steamwebhelper popup

If this happens and ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs/steamwebhelper.log says that you are missing X server or DISPLAY, it means your DISPLAY is not present in the activation environment. For more information please see https://github.com/ValveSoftware/steam-for-linux/issues/10554

Sway: go into your sway config file and add DISPLAY to the following line, then restart:

exec dbus-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway

For more information about this line, please see the Alpine Wiki's entry on Sway

Hyprland: add an exec-once to the configuration file at ~/.config/hypr/hyprland to set DISPLAY. Similarly to Sway you may already have a line that sets other variables. If so, add DISPLAY to the line. The line should look similar to this:

exec-once = dbus-update-activation-environment DISPLAY

See Also