This 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 improve the driver and its behaviour.
- SteamOS session files and binaries for running a Steam-only system.
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.
- Fedora 20 – i686/x86_64
- Fedora 21 – i686/x86_64
- Fedora 22 – i686/x86_64
- CentOS/RHEL 7 – x86_64
Installation of the Steam client
To install the repository on a supported Fedora 22+ distribution, run as root the following command:
dnf config-manager --add-repo=http://negativo17.org/repos/fedora-steam.repo
Then perform the following command to install the client:
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:
yum install libtxc_dxtn
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.
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:
yum -y install dkms-xpad
If you plan to use AKMOD kernel modules:
yum -y install akmod-xpad kernel-devel
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/3.14.5-200.fc20.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.
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 akmod-xpad-0.1-1.fc20.x86_64 kmod-xpad-3.14.5-200.fc20.x86_64-0.1-1.fc20.x86_64 steam-126.96.36.199-4.fc20.i686 steamos-backgrounds-0.7-1.fc20.noarch steamos-base-files-2.30-1.fc20.noarch steamos-compositor-1.19-1.fc20.x86_64 steamos-modeswitch-inhibitor-1.9.1-1.fc20.i686 steamos-modeswitch-inhibitor-1.9.1-1.fc20.x86_64 steamos-session-1.19-1.fc20.noarch xpad-kmod-common-0.1-1.fc20.noarch
If 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.
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.
Running Steam without the Ubuntu libraries
Note: this is no longer available as 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.
Normally the package uses Ubuntu libraries. To use instead Fedora provided libraries, install the additional package
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. Know issues include: videos in the client are not played (regardless of installation of the Flash Plugin) and accessing audio settings when running Steam in Big Picture Mode make the client crash.
On the contrary, my USB gamepads are recognized better by games, I don’t have any visual artifact with Big Picture Mode and you can use the latest ALSA technologies in the drivers like 7.1 DTS sound, 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* 906M
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?).
The address for contacting me is in the package’s changelog.