steamThis repository contains the latest steam package for connecting to the Steam network from Valve. This package cannot be included in the main Fedora repository as it’s not free and is not shipped in source form. Since the Steam license allows package redistribution with a specific note for repacking in Linux distributions; the package is now available in RPMFusion.

This repository requires that the RPMFusion repository be enabled on your system for the S3TXC library required by free drivers (nouveau, radeon, intel) and contains packages that may or may not be included in RPMFusion.

Along the main Steam package for Fedora are:

  • An alternative kernel module for xpad, the X-Box gamepad driver. This variant contains patches created by Valve to their 4.1 kernel to improve the driver and its behaviour.
  • SteamOS session files and binaries for running a Steam-only system.
  • Steam “no runtime” package that pulls in all additional required 32 bit dependencies to avoid using the Ubuntu runtime.

Packages information

This packages try to comply as maximum to the Fedora Packaging Guidelines; this means they have debuginfo packages, default Fedora’s GCC compile time options (where possible) and standard locations for binaries, data and docs.

The main Steam package is 32 bit only, so also on 64 bit systems the package will be 32 bit based. On the contrary, the xpad kernel module and SteamOS files are native to each architecture.

CentOS/RHEL 7 support is limited; there is no updated X-Box gamepad module and the client always uses the Steam Runtime.

Starting from Fedora 25, the Steam client is available for installation by default also in Gnome Software.


Installation of the Steam client

To install the repository on a supported Fedora 22+ distribution, run as root the following commands to install the client:

dnf config-manager --add-repo=
dnf -y install steam

For CentOS, substitute dnf commands and paths where appropriate; i.e.:

yum-config-manager --add-repo=
yum -y install steam

If you are already running a 32 bit desktop, it’s very likely that you have most of the dependencies already installed. If you are running a 64 bit desktop with proprietary Nvidia or AMD drivers; make sure you have the appropriate 32 bit OpenGL libraries installed; otherwise Steam will throw a “GLX error” when starting and games will not work.

Also, if you are running on Open Source drivers on 64 bit, make sure to install the supporting S3 texture compression library. The 32 bit one, of course, being a dependency of the Steam package, is already installed. Example:

dnf install libtxc_dxtn.x86_64

Big Picture Mode

To make “Big Picture” work in Fedora or CentOS/RHEL, enable this SELinux boolean as root:

setsebool -P allow_execheap 1

Moving the Steam client installation

I often poke around with the client, check folder sizes in my home folder, etc. Running a du -hs * in my home folder to check how much space my Pictures or Music folder take it’s very fast. But since the Steam client is installed in a hidden subdirectory it’s not really clear how much space it does take, especially when it reached nearly 70% of my whole drive.

To move the Steam installation (for example in your home folder), simply issue the following command:

$ mv ~/.local/share/Steam ~/Steam

And launch the client again, it will adjust all the symlinks for folders, saves, etc. by itself. Even the desktop / system shortcuts for the games work because they launch Steam (which is in the path) with the appropriate Steam game ID.

Screenshot from 2014-06-09 15:42:26

Improved X-Box gamepad kernel module

There is a multiple choice of kernel module packages; akmod (RPMFusion) and dkms packages are available for Fedora. This way all cases and personal preferences are covered. Just stick to what you prefer.

To install the improved X-Box gamepad driver, issue one of the following commands. For the DKMS enabled kernel module:

dnf -y install dkms-xpad kernel-devel

If you plan to use AKMOD kernel modules:

yum -y install akmod-xpad kernel-devel

Requirement on kernel-devel is required as otherwise the package kernel-debug-devel is pulled in automatically in place of the normal non-debug package.

After the kernel module is installed and recompiled for the kernel module you are running, make sure it is loaded in place of the Fedora kernel bundled one by launching the modprobe command in verbose mode:

# modprobe -v xpad
insmod /lib/modules/4.1.3-200.fc22.x86_64/extra/xpad/xpad.ko

The module to be loaded should reside under extra/xpad, so if it is not and you are loading the official bundled one, just run depmod or reboot the system.

At the moment CentOS/RHEL 7 is not supported for Valve’s X-Box gamepad kernel module as there are some unresolved symbols.

In-Home streaming configuration

Valve has supported In-Home streaming (both as a server and as a client) in Linux for quite some time. According to the documentation, streaming uses UDP ports 27031 and 27036 and TCP ports 27036 and 27037.

The package includes the required service definitions for FirewallD. If you have installed a default desktop, FirewallD should be your firewall solution. To make sure that Steam can listen on the required ports through your firewall software, execute the following commands as root.

You should then be able to see the word “steam” by running:

firewall-cmd --get-services | grep steam

Then get the firewall zone you are in, and enable the service for it. For example, on my system, to get the firewall zone I’m using:

# firewall-cmd --get-active-zones 
  interfaces: em1

Then enable it permanently (i.e. at reboot) and immediately with these commands:

firewall-cmd --zone=public --add-service=steam --permanent
firewall-cmd --zone=public --add-service=steam

Now start up two Steam clients with your user on the same network, and you should see games installed on both systems as available for playing in both Steam clients.

In-Home Streaming (hardware decoding/encoding)

In-Home Streaming hardware decoding is exposed through different backends, depending on the hardware you are running. These are detected at runtime, and are all 32 bit libraries also on 64 bit systems, as the client is 32 bit only.

These are the following backends used for decoding, depending on what you are running on your system you should use something different:

Video DriverHardware APIPackages
Intel (intel)Decoding: VA-APIlibva-intel-driver.i686
AMD (radeon)
Nvidia (nouveau)
Decoding: VDPAUlibvdpau.i686
Nvidia (nvidia)Decoding: VDPAUlibvdpau.i686
Intel (intel)Encoding: VA-APIlibva-intel-driver.i686
Nvidia (nvidia)Encoding: CUDA + NVENCnvidia-driver-cuda-libs.i686

Steam, in recent iterations, prefers system libraries instead of bundled ones from the Ubuntu Runtime if they are available. So if for example you don’t have the necessary VA-API libraries installed, the client will use the one in the Runtime.

Instead, if you are not using the Ubuntu Runtime (steam-noruntime package); the various components required for the VA-API hardware encoding/decoding and for VPDAU hardware decoding are pulled in automatically as dependencies by the steam-noruntime package.

Grid list

During streaming, additional details can be seen by pressing F6. This will display stream statistics along with the encoder and decoder used on the server and client.

Running Steam without the Ubuntu libraries

Normally the package uses Ubuntu libraries instead of your system provided ones. To use instead Fedora provided libraries, install the additional package steam-noruntime:

yum -y install steam-noruntime

After installing, log out and log in back again so the environment file is sourced, setting STEAM_RUNTIME to 0.

Running Steam this way is unsupported and may lead to unexpected results. Also, there is no way to get the full list of libraries (some games download additional stuff) and the new distribution libraries are sometime incompatible with the ones provided in the runtime.

On the contrary, my USB gamepads are recognized better by games, I don’t have any visual artifact with Big Picture Mode, you can use the latest ALSA technologies in the drivers like 7.1 DTS sound, have hardware accelerated decoding with In-Home Streaming, etc.

Just make some tests and see what works best for you.

The SteamOS session is NOT compatible with the steam-noruntime package that disables the Steam Ubuntu Runtime. By disabling the runtime, the configuration panels in the interface to configure Audio, Voice and other settings will make the interface crash. So, if you want to try the SteamOS interface, remove your steam-noruntime package if you have it installed.

Installed Steam client without the Ubuntu libraries

For comparison, see the difference in size for an installation that uses the Steam runtime and one that doesn’t (the SteamApps folder is the folder where applications/games are installed):

$ cd Steam
$ du -hs --exclude=SteamApps
1.4G .
$ du -hs --exclude=SteamApps --exclude=steam-runtime
1.1G .

If we could run it without the Steam runtime enabled and also avoid downloading the runtime archives the client would weigh nearly 500 mb less:

$ du -hs --exclude=SteamApps --exclude=steam-runtime*

Let’s hope that in the future Valve will not mandate the use of Ubuntu libraries for long and will standardize on a specific set of common libraries (LSB?).

Additional controller configuration

The Steam package comes with some additional configuration files for input devices, to make them properly recognized in Big Picture mode. The following devices are part of the original Steam tarball:

  • Steam Controller with USB adapter
  • HTC Vive HID Sensor with USB adapter

Detection for the following device has been modified to make it appear as a Game Pad and not as a mouse (due to its touchpad). This prevents the “ghost” keypresses in Steam Big Picture mode:

  • Nvidia Shield Controller with USB cable

Detection for the following device has been modified to have them properly detected as mice/keyboards and not joysticks due to a bug in the Linux kernel. This prevents the “ghost” keypresses in Steam Big Picture mode:

  • Microsoft Microsoft Wireless Optical Desktop® 2.10
  • Microsoft Wireless Desktop – Comfort Edition
  • Microsoft Microsoft® Digital Media Pro Keyboard
  • Microsoft Corp. Digital Media Pro Keyboard
  • Microsoft Microsoft® Digital Media Keyboard
  • Microsoft Corp. Digital Media Keyboard 1.0A
  • Microsoft Microsoft® Digital Media Keyboard 3000
  • Microsoft Microsoft® 2.4GHz Transceiver v6.0
  • Microsoft Microsoft® 2.4GHz Transceiver v8.0
  • Microsoft Corp. Nano Transceiver v1.0 for Bluetooth
  • Microsoft Wireless Mobile Mouse 1000
  • Microsoft Wireless Desktop 3000
  • Microsoft® SideWinder(TM) 2.4GHz Transceiver
  • Microsoft Corp. Wired Keyboard 600
  • Microsoft Corp. Sidewinder X4 keyboard
  • Microsoft® 2.4GHz Transceiver v9.0
  • Microsoft® Nano Transceiver v2.1
  • Microsoft Sculpt Ergonomic Keyboard (5KV-00001)
  • Microsoft® Nano Transceiver v1.0
  • Microsoft Wireless Keyboard 800
  • Microsoft® Nano Transceiver v2.0
  • WACOM CTE-640-U V4.0-3
  • Wacom Co., Ltd Graphire 4 6×8
  • Wacom Bamboo Pen and Touch CTH-460
  • A4 Tech Co., G7 750 mouse
  • A4 Tech Co., Ltd Bloody TL80 Terminator Laser Gaming Mouse
  • A4 Tech Co., Ltd Bloody RT7 Terminator Wireless
  • Modecom MC-5006 Keyboard
  • A4 Tech Co., Ltd Terminator TL9 Laser Gaming Mouse
  • A4 Tech Co., Ltd Bloody V5
  • A4 Tech Co., Ltd Bloody R3 mouse
  • A4 Tech Co., Ltd X-718BK Oscar Optical Gaming Mouse
  • A4 Tech Co., Ltd XL-750BK Laser Mouse
  • A4 Tech Co., Sharkoon Fireglider Optical
  • Cooler Master Storm Mizar Mouse

SteamOS session

Inside the repository there are packages specific for the SteamOS customization that have been implemented by Valve for their Debian based distribution. It is now possible to install all files and packages required to launch a Steam only session from the login manager. This will bring up Steam in SteamOS mode (-steamos switch) and allows you to configure all system aspects directly in the Steam interface.

To enable the SteamOS session and enjoy the same experience provided by Valve’s SteamOS; install all the above packages plus the additional SteamOS packages:

yum -y install steamos-session

On a 64 bit system:

yum -y install steamos-session steamos-modeswitch-inhibitor.i686

This will install the following components on your system:

  • The modeswitch inhibitor, a library that is used to ignore the Xrandr resize requests performed by games
  • The SteamOS compositing manager, which takes care of scaling the output to your native resolution, providing a seamless transition between games with different resolutions than your native monitor/TV resolution
  • The required support files for the SteamOS session (binaries, cursor, scripts, etc.)
  • The Steam user that is configured to have additional permissions on the system compared to a normal user, as it is in Valve’s SteamOS
  • Some (ugly) wallpapers

Example of the packages installed:

$ rpm -qa steam\* \*xpad\*| sort

Screenshot from 2014-06-09 16:39:27If you have ever installed SteamOS from Valve’s provided media, you will get the same behaviour for the installation. Login once as the SteamOS user (the password is “steam”, finish the Steam installation (with the system icon or by running Steam from the command line) and logout. Now you can login back again using the SteamOS session and experience the SteamOS interface on your Fedora system.

After logging in, unless you’re connected through HDMI, you will not get any audio, as by default SteamOS routes all audio through the HDMI connector of your video card.

Alternatively, if you just want to give it a quick test, reboot your computer, login with your user and select the SteamOS session. After testing it and getting back to your normal account, remember to switch back to your normal audio output as Gnome will keep track of your last used audio device, that after testing the SteamOS is always the HDMI output.

Known issues

The following list of issues are related to the fact that the SteamOS system is designed around Debian, so there are a couple of things that are not supported by this setup:

  • Checking for package updates (not Steam client updates) from the interface is broken. The Steam client binray calls dpkg directly.
  • There is no bug reporting tool installed, as this is not a configuration supported by Valve.
  • Shutdown/Restart etc. do not work reliably (at the moment). Debian 7 on which SteamOS is based still uses PolicyKit, in Fedora this is replaced by systemd’s logind. Converting all the rules is next on my todo list.


Just open an issue to the specific package on Github.

145 thoughts on “Steam

    1. Yes, by default Steam now loads system libraries in place of bundled ones if they are available:

      * Fri Feb 10 2017 Simone Caronni -
      - Remove noruntime subpackage, use default new mechanism that uses host
      libraries as per client update of 19th January (5th January for beta):

  1. Fedora 25 since a few days ago:

    [root@hostname ~]# dnf -b update steam
    Last metadata expiration check: 0:08:27 ago on Fri Feb 24 22:53:20 2017.
    Error: package libdbusmenu-gtk3-12.10.2-10.fc24.i686 requires, but none of the providers can be installed
    (try to add ‘–allowerasing’ to command line to replace conflicting packages)

    1. Hello, dependencies should be fine, I don’t have the error:

      $ rpm -qf /usr/lib/

      No non-standard packages installed for Steam.

      1. For some reason, that package had not been pulled when I installed steam – I had the x64 version installed but not the 686. Installing it manually fixed the problem. Thanks!

      1. Forgive me stupid question, but what default driver do you mean? There is no driver after clean installation. What should i install, “xboxdrv” from epel or something else? I am looking for the easiest way how to make wired XB360 controller to work in RHEL 7.3. Thank you.

        1. In RHEL unfortunately the up-to date X-Box controller driver (xpad.ko) is not available, the last time I tried it did not compile or load succesfully.
          You need to use the one that comes with your kernel.

          I will check again if anything has changed.

  2. I am also having problems when trying to enable hardware decoding with Intel gpu (va-api). Vainfo works fine but Steam and also Kodi gives libva error: va_getDriverName() failed with unknown libva error,driver_name=(null). If I am not wrong vainfo uses 64 bit libs but Steam uses 32 bit libs so that might be the difference. I am also using quite new hardware – Apollo Lake based Celeron J3455 and perhaps the drivers are not mature enough

  3. Having an issue getting hwdecode for in home streaming. Fedora 25, rpmfusion and your libraries. Hardware – skylake i7 and a nvidia 960m. Pretty sure I don’t have the nvidia drivers installed cause I have no desire at least currently to use it while in my fedora env.

    Running with STEAM_RUNTIME=1 fails to enable hardware decode, as expected.

    Running with STEAM_RUNTIME=0 fails to enable hardware decode, with the following spat out:
    libva info: VA-API version 0.39.4
    libva info: va_getDriverName() returns -1
    libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)

    Now, for shits and giggles, I symlinked libva* in the steam runtime to my device’s libva*, and it spat out the same nonsense.

    And here’s the most confusing part. 😛

    $ vainfo
    libva info: VA-API version 0.39.4
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib64/dri/
    libva info: Found init function __vaDriverInit_0_39
    libva info: va_openDriver() returns 0
    vainfo: VA-API version: 0.39 (libva 1.7.3)
    vainfo: Driver version: Intel i965 driver for Intel(R) Skylake – 1.7.3
    vainfo: Supported profile and entrypoints

    The following packages are installed:
    libva (i686 and x64)
    libva-intel-driver (i686 and x64)

    Not sure quite what’s going on here.

    1. So first of all you need to have VA-API acceleration working without any special magic. vainfo should return the driver information as is.
      After that, running Steam without the Ubuntu runtime should just use your system acceleration.

      I have a copy of the libva-intel-driver which always enables the ASM optimizations, you might want to try that by adding the multimedia repository:

      Keep in mind that this will overwrite many RPMFusion packages.

      1. Hm. I must have done something terribly wrong then. I’m pretty sure I do have VA-API working, because I’m able to explicitly call for it with mpv (hwdec=vaapi in mpv.conf), and have it decode with a significant CPU usage drop (over SW decode). Steam still decides to hiccup at the notion of using VA-API though, and falls back to the software decoder. Any thoughts? I’m now using your libva-intel-driver, along with the rest of the packages in HandBrake.

        Anyway, I’ve spent enough time up with fiddling for now. I’ll continue with it in the morning.

        1. It could be a Steam issue. I can’t help you there at the moment, I don’t have an Intel video chip powered system anymore.

  4. Hi,

    Steam was working fine until a recent update, now I get:

    $ steam
    Running Steam on fedora 24 64-bit
    STEAM_RUNTIME is enabled automatically
    Installing breakpad exception handler for appid(steam)/version(1476379980)
    libGL error: No matching fbConfigs or visuals found
    libGL error: failed to load driver: swrast

    And it hangs there.

    I have also tried the steam-noruntime and STEAM_RUNTIME=0 but same error.

    Any idea?

    1. You’re missing 32 bit libraries. If you’re on Intel/Radeon use the 32 bit mesa packages, if you’re on Nvidia add the 32 bit libraries as explained in the page.

  5. Hi, getting the following on a fresh install of Fedora 25 when trying to install steam (via dnf install steam):
    Error: nothing provides libtxc_dxtn(x86-32) needed by steam-

    Checking the repos, looks like it’s present in the fedora-24 version but no in the fedora-25 version?

  6. Hello,

    I’m having trouble with the Steam installation on RHEL/Centos 7. One issue is that the dependencies are requiing “libva-intel-driver(x86-32)” even though I’m using an nVidia card and have the nVidia driver installed. One repo I’m using (nux-dextop) does have libva-intel-driver, but only for x86_64. But it seems like I shouldn’t need a driver for a graphics card I’m not using. Another issue may be that RPMfusion still doesn’t have a RHEL/Centos 7 repo.

    I also tried installing “steam-noruntime”, but that doesn’t seem to exist in the “epel-steam.repo”.

    I also HAD an issue with the version of “avahi-libs” installed — when I tried to update it, I get a report
    Error: avahi-compat-libdns_sd conflicts with avahi-0.6.31-17.el7.x86_64

    But I found an updated copy on the Oracle Linux-7 repository, so now my only issue is the libva-intel-driver.

    Thanks in advance,

    1. Hello,

      > One issue is that the dependencies are requiing “libva-intel-driver(x86-32)” even though I’m using an nVidia card and have the nVidia driver installed.

      That’s just a library, and is required to have video decoding when streaming on an Intel laptop. It’s correct, you don’t need it for Nvidia but it makes no harm to have on the system, much like you have other video drivers when you install CentOS 7.

      > One repo I’m using (nux-dextop) does have libva-intel-driver, but only for x86_64.

      You need a 32 bit one, as the client is 32 bit only. See here:
      It contains all the 32 bit libraries for Steam, the Nvidia driver, etc.
      I’m working with Red Hat (which in turn is working with Valve) to enable this repository by default. The libva library will then be included in the runtime of the client itself.

      > I also tried installing “steam-noruntime”, but that doesn’t seem to exist in the “epel-steam.repo”.

      That’s correct, it’s written in the page:
      To enable that you would need a 32 bit CentOS available to install a ton of dependencies. So on CentOS running Steam without the Runtime is not supported.

      1. Hi Slaanesh

        im on Red Hat 7.3 and i get the dependency error:

        Error: Package: steam- (epel-steam)
        Requires: libva-intel-driver(x86-32)

        If i remember i do have nux-desktop repo added ….

        Any ideas? I run with original Nvidia drivers installed


  7. I had managed to install Steam just fine, but when I hit the steam icon, nothing happens. ran steam in command line, and found out that a SSFN* file was missing. Could not find a fix for that.

    I then updated the drivers for my NVIDIA GeForce GTX 660, and now Steam runs perfectly fine.

    My initial driver was not very outdated (just the previous version), but it seems having the latest one fixed the problem…

    1. Same thing, but I’ve been asked by Red Hat / Valve to not ship the package with the option to disable the Ubuntu Runtime, so I’m making two different versions of the package (different patches); one here with the option (steam-noruntime package) and one more conformant without. The xpad module override can’t be part of Fedora as well.

  8. Hi negativo17 i need help with steam its not starting on fedora 24. I installed your repo for nvidia and steam repo. But steam wont start. When i do this dnf install libtxc_dxtn.x86_64 it says nothing to do. BUt my guess is something else needs to be installed for 32bit liber.

    Please help thank you

    1. never mind i overlooked the 32bit libraries when installing nvidia.
      just did this command sudo -y install nvidia-driver-libs.i686
      works flawlessly Thank you for your great guides

  9. So, when I go to install xpad, I’m having a bit of trouble with errors, or just completely null output.

    When attempting to use “#modprobe -v xpad”, I get no return whatsoever, not even an error.
    When attempting to use “#insmod /lib/modules/4.5.7-300.fc24.x86/extra/xpad/xpad.ko”, I get an error showing “insmod: ERROR: could not load module /lib/modules/4.5.7-300.fc24.x86/extra/xpad/xpad.ko: No such file or directory”
    Depmod returns no results as well.

  10. Any idea how to fix this ?

    [ltcdls@light ~]$ sudo dnf update
    [sudo] password for ltcdls:
    Failed to synchronize cache for repo ‘fedora-steam’, disabling.kB 00:00 ETA
    Last metadata expiration check: 0:57:11 ago on Thu Jun 16 06:24:25 2016.
    Dependencies resolved.
    Nothing to do.
    [ltcdls@light ~]$

Leave a Reply