Steam

Jump to: navigation, search
Steam

Steam.png

Download for openSUSE
Download on Flathub

Vendor: Valve Software
Developer: Valve Software
License: Steam EULA
Web: http://steampowered.com


Steam is a software distribution service.

  • online games store
  • automatic updates
  • in-game achievements
  • synchronized savegame and screenshot functionality
  • view friends playing
  • instant messenger and voice chat
  • remote play via game streaming

Installation

Icon-warning.png
Warning: Steam is a closed source application whose runtime relies on a 2012 Ubuntu release for binary compatibility. This may cause issues with the openSUSE:Tumbleweed rolling release, but the maintainers do their best to keep Steam working well on openSUSE.

openSUSE repositories

The latest version of Steam can also be installed from the Build Service using this link.

If you experience missing dependencies please submit a bug or contribute them to the steam.spec file by branching the steam package in OBS.

Flatpak

Flatpak may also be used to install Steam.

1. Install flatpak

user $ sudo zypper install flatpak

2. after this, if one wishes to install Steam as user (as opposed to as root) run:

user $ flatpak install --user --from https://flathub.org/repo/appstream/com.valvesoftware.Steam.flatpakref

3. or, alternatively if one wishes to install Steam system-wide run:

user $ sudo flatpak install --from https://flathub.org/repo/appstream/com.valvesoftware.Steam.flatpakref

A desktop launcher should appear in application menus, if not relogin and it should happen. If one wishes to launch Steam from the command-line run:

user $ flatpak run com.valvesoftware.Steam

SteamCMD

SteamCMD is a command line alternative for servers and users who don't want a graphical client. See the official documentation for more information.

Play Windows games

Most games are developed for Windows. To play them on Linux, you need a compatible layer like Wine. Luckily, Steam has built-in Proton, a fork of Wine, to support Windows games on openSUSE. However, here are still something you need to do before playing those games.

First, you need to install Valkan drivers. Currently, only Intel and AMD drivers are included in openSUSE repositories. NVIDIA drivers has to be download from NVIDIA's website and it is not as stable as open source drivers.

To run some Windows games with extraordinary 3D graphics, we will also need DXVK (bundled in Proton), which translate MS DirectX to the open source Vulkan. Unluckily, DXVK currently only support AMD and NVIDIA GPU. So if you are buying a PC, make sure to choose the right GPU. (AMD GPU is in general the best choice)

After that, you need to start Steam, open settings, and enable Steam Play (Proton) compatibility tools.

Steam-settings-compatibility.png

Frequently asked questions

Is Steam free?

Yes, Valve Software allows the installation of their Freeware Steam client via their EULA what they call a "limited installation license" without any charges.

If you buy games on the Steam store you are bound to their Subscriber Agreement. Technically you don't own the games you buy, but rent them for an unlimited amount of time. That means they are bound to your account, you can install them wherever and whenever you want, but can't sell them. The DRM will also require an internet connection to activate them for the first time. Some games even need a continuous internet connection.

Freeware games like Team Fortress 2 are marketed as "free-to-play". They get monetized via in-game purchases of additional inventory items.

How will I know if this game runs on Linux?

The Valve store has a Linux section: http://store.steampowered.com/browse/linux/ They also add a steam-os icon to Linux compatible games.

In addition to games that are native to Linux, it is also possible to run some games that are not native to Linux through Steam Play. For many games users write compatibility reports on protondb.

How well do games run on Linux?

Valve's Games on Steam are native ports. They will run a lot faster and smoother than the experience with Wine workarounds (see the section below for more information about Steam on Wine). Valve also claimed that the lack of DirectX overhead also increased performance.[1] If you spawn an additional XServer to run OpenGL games it will boost your FPS even more because the Desktop Environment and composition effects won't slow you down. If you are running KDE hit ALT+SHIFT+F12 to temporarily disable the KWin compositor. This will enhance video performance especially when you run OpenGL games in windowed mode.

Steam-Controller

The Steam Controller is a gamepad that was sold by Valve and can be used also on Linux.

Installation

Icon-warning.png
Warning: If the controller does not work in wireless mode please check if it works with the steam and steam-devices packages from the Games-Repository as they are often more up-to-date.

You will need the latest version of Steam installed, after that the steam-devices package should be automatically installed. Make sure the users which should have access to the steam controller are in the games group. After the installation you might need to log-out and relogin.

Steam Play

The goal of Steam Play is to make games that are not native to Linux run as well as they do on Windows. Some games even get the benefit of better controller support through Steam Play than they would have running on Windows. Steam Play uses a customized version of Wine called Proton to launch games. This does not require the user to install Wine on their PC.

Steam Play has a relatively small list of whitelisted games, but only games which have been verified to run as well as they do on Windows will be whitelisted. More games are also being added to the whitelist as bug fixes are made and more testing is done.

Steam Play also has the option to play non-whitelisted games, but these games are more prone to having either minor issues or not working at all on Linux. For non-whitelisted games Steam Play has to be enabled in Steam in the setting dialog under Steam Play by ticking the "Enable Steam Play for all other titles" checkbox. ProtonDB is a fan made website which allows users to see how well games work with Steam Play. Users can also submit reports for games they have tested to rate how well the game works with Steam Play.

To get logs, set launch options to PROTON_LOG=1 %command%, after starting the game it will create a log file in your $HOME. Also, check issues on GitHub for help about specific games.

For AMD GPU users, since proton requires libvulkan_radeon-32bit but it doesn't installed by default, you need to manually install it.

Steam In-Home Streaming

If you are having problems with In-home streaming, ensure you have the firewall rule enabled.

user $ firewall-cmd --zone=public --add-service=steam-streaming --permanent
user $ firewall-cmd --zone=public --add-service=steam-streaming

Steam in Wine

Icon-warning.png
Warning: Running Steam through Wine should no longer be necessary to run Windows games on Linux. Steam Play is much easier to use and works better for most games. Also, beware that this method does not mean you can play all Windows games on Linux. It simply allows you to launch the games from Steam. The actual compatibility of a game with Wine is a completely separate issue and users are advised to check the AppDB for specific information for each game.
Icon-checked.png
This procedure was tested on Wine 1.7.2

Installation

Install Wine on your system to use this method. You can run Steam from the systems version of Wine or use a program like Play On Linux (POL) to help you install and use it. If you use POL then please disregard the rest of this guide and instead follow the general procedure of installing an application with POL.

First, download the windows version of steam and cd to the directory.

user $ cd /path/to/download

It is important that this be done using a terminal emulator like Konsole so that if there are any errors, they can be kept track of using the output Steam will give. When the installer is done downloading, run the following command:

user $ wine SteamSetup.exe

This should begin the Steam installer which will then prompt you for information regarding your language and install directory. Once that is done, you should uncheck start steam and end the installer.

Now you can simply find steam in your application launcher and run it as if it were any other program!

Bugs with Wine

Steam has no text

This is a known issue with dwrite.dll and can by bypassed using two methods.

The first method is quite simple, you edit the launcher for Steam and add -no-dwrite to the end of it.

The second method is more global, as the problem with the above method is that it does not apply to all steam launchers and is instead limited to the launcher itself. To apply this to all launchers on your system, you must edit the wine configuration for your system. Doing this is pretty easy and it should fix all missing text problems.

Begin by opening the Wine configuration program (winecfg) and in the Applications tab, select the Add application button. Navigate to where the Steam.exe file is (usually in the Program Files/Steam folder) and select it.

Now click the Libraries tab and in the New override for library menu and select dwrite. Then click the Add button, and making sure that dwrite is selected, click the edit button. In the popup, select disable hit OK and then OK again on the Wine Configuration window. Steam should now be able to run from any launcher and still display text.

Troubleshooting

Error starting Steam installer (openSUSE Leap 15)

Icon-checked.png
This procedure was tested on Leap 15.4


After installing the Steam installer, there is an error:

symbol lookup error: /usr/lib/i386-linux-gnu/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds

See: https://github.com/ValveSoftware/steam-for-linux/issues/5249

Workaround presented in ticket works, just start steam this way:

user $ LIBGL_DRI3_DISABLE=1 steam

Games not connecting to servers (openSUSE Leap 42.3)

Icon-checked.png
This procedure was tested on Leap 42.3

With openSUSE Leap 42.3 there is a problem with different certificates paths (between OpenSuse and Ubuntu 12). This should be corrected with:

root # ln -s /var/lib/ca-certificates/ca-bundle.pem /etc/ssl/certs/ca-certificates.crt

After this, games like Rocket League and Rust work ok and connect to servers.

Games not launching after June 2017 update

Icon-checked.png
This procedure was tested on Leap 42.2

If Steam stopped working after Steam client updates of June 2017, launch steam with command

user $ STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam

Source: https://forums.opensuse.org/showthread.php/525175-After-Steam-update-the-games-is-not-launching

AMD graphical chip set and no game play

Some users report that with Free radeon installed for AMD graphical chip-set, there is no game play at all: games won't start after selecting and clicking them. To possibly solve this search and install the appropriate AMD proprietary driver for your card with one-click: SDB:Radeon

AMD radeonsi_dri.so opensource driver

If steam doesn't load and complains about missing radeonsi_dri.so.

Run steam with:

user $ /usr/bin/steam %U

Loading Steam without local runtime to avoid crash or game play without sound

Some users report that newer updates of the Steam client temporarily require starting with the following command to avoid a crash. Also users report missing sound in video-clips and games. Try to load Steam without local runtime to solve this:

$ STEAM_RUNTIME=0 steam

Loading Steam without local runtime means loading without the pre-bundled libraries that Steam delivers within the package. These could be older versions, with bugs resolved in newer versions, already installed on your system. Steam will attempt to use the ones installed on your system, when started with this option.

Failure to start Steam, when trying to load Steam without local runtime

This could be due to missing 32 bit libraries, for example on 64 bit systems. Go to directory ~/.local/share/Steam/ubuntu12_32 and investigate missing libraries by executing the commands below:

user $ cd ~/.local/share/Steam/ubuntu12_32
user $ command=LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq

(source: https://wiki.archlinux.org/index.php/Steam#Using_native_runtime_.3D)

Example output:

libdbus-glib-1.so.2 => not found
libnm-glib.so.4 => not found
libnm-util.so.2 => not found

or

user $ LD_PRELOAD=/usr/lib32/libudev.so.1 STEAM_RUNTIME=0 steam

(source: https://wiki.archlinux.org/index.php/Steam/Troubleshooting)

Example output:

user $ ... (output sequel of previous command)

you are missing the following 32-bit libraries, and Steam may not run: libXtst.so.6 libva.so.1 libvdpau.so.1 libva.so.1 libva-x11.so.1

Find these missing dependencies with YasT - Software management, select "RPM delivers", search for the missing files and install the 32bit versions.

For example, you use:

user $ sudo zypper in libvdpau_radeonsi-32bit (for radeon cards) libXtst6-32bit libvdpau_va_gl1-32bit libva-glx2-32bit

If you still experience this problem when you have 32-bit libs installed, make sure your user is part of the video, games, audio and cd groups. This can be done with YaST -> User and Group Management -> Edit and then select the Details tab.

Ensure user is part of the correct groups

Game crashes even with STEAM_RUNTIME=0

If you are encountering an issue where your games seem to crash at launch and you cannot figure out what is wrong try to see what output you get from the following two commands

/path/to/executable
gdb /path/to/executable
(at the prompt, type)
run

In my case I was getting the following error "terminate called after throwing an instance of 'CFileException'". The solution was to put it on an ext4 parition and then attempt to run the game.

Please also see https://wiki.archlinux.org/index.php/Steam#Some_games_fail_to_start

No Sound

Some users reported hearing nothing in their steam games.

Icon-warning.png
Warning: Only do this if you feel confident, I cant guarantee it wont break something.

Following this guide they tried to

user $ rm -fv /var/lib/dbus/machine-id

and then

user $ ln -sv /etc/machine-id /var/lib/dbus/machine-id

It says to only create the link if the file does not exist. It did exist for me, but replacing it with a symlink fixed my sound issue.

Some games may attempt to communicate with alsa directly, rather than going through pulse audio. Although this should not be needed by newer systems, this can be fixed by installing alsa-plugins-pulse.

See also

External links