Differences between revisions 60 and 61
Revision 60 as of 2018-01-16 15:50:40
Size: 11405
Editor: ?coyote
Comment: Unable to load driver
Revision 61 as of 2018-02-28 20:49:39
Size: 11418
Editor: ccts
Comment:
Deletions are marked like this. Additions are marked like this.
Line 235: Line 235:
Line 236: Line 237:
CategoryGame CategoryGame CategoryGame CategoryGameProprietary

Translation(s): Deutsch - English - Español - Français - Português do Brasil - Русский


Steam logo

Steam is a proprietary content delivery and management application for PC software with GNU/Linux support. It is packaged for Debian in non-free

Graphics

Some games will run fine with your current set up, others may require updated drivers to get the best performance, and a few may refuse to run without the driver updates. Determine what graphics hardware you are using and follow the appropriate section for AMD graphics or NVIDIA graphics.

Preparation

User permissions

You must be sure that the regular user that will run steam games is at least at groups "video" and "audio".

#usermod -a -G video,audio second_user

Debian has a security approach that all is forbidden unless sysadmin explicitly allows. This schema is managed by "task" groups. The very first regular user created during installation is included in groups "video", "audio", "cdrom", "scanner", and so on. The next users created are not included at any special group. This way, next created users will not be able to execute steam. It fails with weird messages regarding "X bad number out of range." You must have to include them explicitly with commands or users management GUIs like kuser.

Installation

There are packages available for Debian 8 "Jessie", Stretch and Sid.

Packages are not currently available for Debian 7 "Wheezy". If you want to run Steam on a Wheezy system, you would need to either build a jessie chroot (look at schroot for this) or upgrade to Jessie first.

64-bit systems (amd64)

/!\ Instructions are for Jessie and Sid systems only. Do not do this on Wheezy or you will break your system.

  1. Add a "non-free" component to /etc/apt/sources.list, for example:

    # Debian Jessie
    deb http://httpredir.debian.org/debian/ jessie main contrib non-free
  2. Enable Multi-Arch and update the list of available packages:

    # dpkg --add-architecture i386
    # aptitude update
  3. Install the steam package:

    # aptitude install steam
  4. Install 32-bit OpenGL libraries:

/!\ Installing the 32-bit OpenGL libraries may uninstall the 64-bit drivers you may have previously installed. Installing the AMD graphics or NVIDIA graphics drivers for your system is recommended. The appropriate OpenGL library will be installed along with those drivers. If you installed these drivers from jessie-backports be sure to also install the 32 bit library from jessie-backports.

  • Nvidia graphics hardware:

    # aptitude install libgl1-nvidia-glx:i386

    ATI/AMD graphics hardware:

    # aptitude install libgl1-fglrx-glx:i386

    AMDGPU graphics hardware: (tested on stretch)

    # aptitude install xserver-xorg-video-amdgpu:i386 xorg-video-abi-23:i386 xserver-xorg-core:i386

32-bit systems (i386)

/!\ Instructions are for Jessie and Sid systems only. Do not do this on Wheezy or you will break your system.

  1. Add a "non-free" component to /etc/apt/sources.list, for example:

    # Debian Jessie 
    deb http://httpredir.debian.org/debian/ jessie main contrib non-free
  2. Update the list of available packages and install the steam package:

    # aptitude update
    # aptitude install steam

Troubleshooting

Steam runtime issues

Upstream ?GitHub issue tracker

Steam ships with its own versions of some libraries (the "Steam Runtime") in an attempt to emulate the Ubuntu 12.04 environment in later versions of Ubuntu.

However, some core libraries included in the Steam Runtime will often conflict with the newer versions of other libraries included in Debian (such as drivers, and specifically the open-source ATI driver).

Variant: remove offending files from Steam Runtime

You can work around this by deleting the Steam Runtime versions of these libraries, forcing Steam to fall back to the up-to-date system versions (the ones installed by apt-get).

Note that Steam will frequently re-install these runtime libraries when Steam is updated, so until ValveSoftware/steam-runtime#13(https://github.com/ValveSoftware/steam-runtime/issues/13) is resolved, whenever Steam updates, you should exit, remove the libraries, and restart it again.

Run these commands to remove runtime libraries known to cause issues with Debian:

  • # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgpg-error.so.0

Examples of issues / error messages known to occur if these libraries are present:

  • Failed to load libGL: undefined symbol: xcb_send_fd
  • ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
  • Problems with 64-bit games like XCOM
  • "OpenGL GLX context is not using direct rendering, which may cause performance problems." (see below)
  • "Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated."
  • The Steam client itself crashing

If you find yourself at this Steam page then likely removing the above files will sort this problem

https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457

Variant: Don't use runtime

If you start steam with

STEAM_RUNTIME=0 steam

it won't use its runtime and use the system libraries. On Stretch, you currently need to install the following packages to make this work

libxtst6:i386 libxrandr2:i386 libglib2.0-0:i386 libgtk2.0-0:i386 libpulse0:i386 libgdk-pixbuf2.0-0:i386 libcurl4-openssl-dev:i386 libopenal1:i386 libusb-1.0-0:i386 libdbus-glib-1-2:i386 libnm-glib4:i386 libnm-util2:i386

It's also necessary to link

ln -s /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0

Because the libudev.so.0 file is currently not available in Debian. If this is not enough in the future, use

LD_LIBRARY_PATH=~/.steam/bin32 ldd ~/.steam/bin32/steamclient.so | grep 'not found'

to find missing dependencies of steamclient.so, or if some other Steam *.so fails to load, adapt the command for that one. To find the packages containing the dependencies, use the Debian package search at http://packages.debian.org.

No sound in games

Possibility: Library conflicts

You need to remove alsa-lib and libasound.so.* in ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/ ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/

so:

  • # rm -rf ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/alsa-lib
    # rm -rf ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/alsa-lib
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libasound.so.*
    # rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libasound.so.*

Possibility: Non-standard audio output device

Some games won't use any audio output device which doesn't use 16bit 44.1kHz by default. Usually this happens with quality devices which use higher values by default.

Steam Store and Community Pages not Displaying

Start Steam from the terminal

$ steam

When attempting to access the store page the terminal should output:

$ ~/.local/share/Steam/ubuntu12_32/steamwebhelper: error while loading shared libraries: libgpg-error.so.0: cannot open shared object file: No such file or directory

This means that you do not have the 32-bit libgpg-error0 package installed.

Install the proper package:

# apt-get install libgpg-error0:i386

Game Fails to Launch: (Steam Works)

Solution #1: It looks like when using the nvidia driver 367.44 directly steam breaks. It just fails to launch the game without libgtk-2.0-0:i386 (dependency).

Install the proper package:

# apt-get install libgtk2.0-0:i386

Solution #2: The Steam Game Folder needs x+ (exec) (If you copied from a remote location it may of removed permissions)

Make sure games inside /home/<username>/.steam/steam/steamapps/common/ have +x on the startup script. Some run independently via a shell script while other games run a shortcut. The launcher has to be +x for the game to work.

# chmod +x /home/<username>/.steam/steam/steamapps/common/<game>/

Slow Download Speeds

Issue

Due to a bug in the Steam for Linux client, download speeds can slow down to several bytes a second. This happens because the client looks up the network address for all the download servers it connects to every time it makes a connection. This can mean it will request the same information ten times a second from the DNS servers your network connection is using. Depending on how that DNS server is configured, it can throttle down the amount of DNS requests you can make. This causes Steam download speeds to start fast, but then quickly slow down into nothing.

Workaround

A workaround for this issue is to install a DNS cache on the local machine running Steam so it only taxes your machine, and not your ISP. This involves downloading dnsmasq and resolvconf

# apt update
# apt upgrade
# apt install dnsmasq
# apt install resolvconf

and then restart the services:

# service dnsmasq restart
# service resolvconf restart

This issue's solution came from the following Steam Community post.

Unable to load driver

When Steam's runtime is used, errors as these are possible:

  • libGL error: unable to load driver: radeonsi_dri.so
  • libGL error: unable to load driver: r600_dri.so

Best solution is removing some unnecessary libraries:

# # please be accurate with this command
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete

See also


CategoryGame ?CategoryGameProprietary