|
|
| (16 intermediate revisions by 2 users not shown) |
| Line 2: |
Line 2: |
| If there are any problems with your Steam installation first try to reset it's configuration and files. This won't affect your currently installed games. | | If there are any problems with your Steam installation first try to reset it's configuration and files. This won't affect your currently installed games. |
| {{Command|steam --reset}} | | {{Command|steam --reset}} |
|
| |
|
| |
| == Bug [https://github.com/ValveSoftware/steam-for-linux/issues/1040 1040]: Let Steam client windows be managed by the window manager ==
| |
| Lets you close Steam to the tray instead of having it sit in the task bar.
| |
|
| |
| {{File|~/.bash_profile|
| |
| <pre>
| |
| # Steam close to tray workaround
| |
| # https://github.com/ValveSoftware/steam-for-linux/issues/1040
| |
| export STEAM_FRAME_FORCE_CLOSE=1
| |
| </pre>
| |
| }}
| |
|
| |
|
| |
| == Bug [https://github.com/ValveSoftware/steam-for-linux/issues/529 529]: Error: SELinux is preventing steam from using the 'execheap' accesses on a process ==
| |
| Enable workaround: {{Root|setsebool -P selinuxuser_execheap 1}}
| |
|
| |
| Disable workaround: {{Root|setsebool -P selinuxuser_execheap 0}}
| |
|
| |
|
| |
| == Force Steam to use the system libs instead of the STEAM_RUNTIME (STEAM_RUNTIME is the default and only supported upstream configuration) ==
| |
| {{Command|<nowiki>STEAM_RUNTIME=0 steam</nowiki>}}
| |
|
| |
|
| |
|
| == Start Steam with debug output enabled == | | == Start Steam with debug output enabled == |
| {{Command|<nowiki>STEAM_RUNTIME=1 STEAM_DEBUG=1 steam</nowiki>}} | | {{Command|<nowiki>STEAM_RUNTIME=1 STEAM_DEBUG=1 steam</nowiki>}} |
|
| |
|
| |
|
| == Debug a Steam application / game with strace == | | == Debug a Steam application / game with strace == |
| Line 66: |
Line 42: |
|
| |
|
| == Steam on Exherbo Linux == | | == Steam on Exherbo Linux == |
| | === Host - Prepare system tools === |
| | |
| | {{File|/etc/paludis/options.conf| |
| | <pre> |
| | # i686-pc-linux-gnu cross |
| | dev-util/pkgconf targets: i686-pc-linux-gnu |
| | sys-devel/binutils targets: i686-pc-linux-gnu |
| | sys-devel/gcc targets: i686-pc-linux-gnu |
| | app-admin/eclectic-gcc targets: i686-pc-linux-gnu |
| | </pre> |
| | }} |
| | |
| | This is required temporarily to get you started and will be reverted later on. |
| | {{File|/etc/paludis/options.conf| |
| | <pre> |
| | sys-devel/gcc -threads |
| | </pre> |
| | }} |
| | |
| | {{Root|cave resolve pkgconf binutils gcc eclectic-gcc -x1}} |
|
| |
|
| === Cross environment (basic) === | | === Target - Prepare cross environment === |
|
| |
|
| Create a copy of your paludis environment. | | Create a copy of your paludis environment. |
| Line 73: |
Line 69: |
|
| |
|
| In the cross environment you can remove any repository .conf not needed, required are ::arbor, ::desktop, ::gnome, ::media and ::x11 (::hardware for nvidia-drivers). | | In the cross environment you can remove any repository .conf not needed, required are ::arbor, ::desktop, ::gnome, ::media and ::x11 (::hardware for nvidia-drivers). |
| | |
| | {{File|/etc/paludis-cross/repositories/i686-pc-linux-gnu.conf| |
| | <pre> |
| | format = exndbam |
| | location = ${root}/var/db/paludis/repositories/cross-installed/i686-pc-linux-gnu |
| | name = i686-pc-linux-gnu |
| | split_debug_location = /usr/i686-pc-linux-gnu/lib/debug |
| | tool_prefix = i686-pc-linux-gnu- |
| | cross_compile_host = i686-pc-linux-gnu |
| | </pre> |
| | }} |
| | |
| | {{Root|mkdir -p /var/db/paludis/repositories/cross-installed/i686-pc-linux-gnu}} |
|
| |
|
| {{File|/etc/paludis-cross/bashrc| | | {{File|/etc/paludis-cross/bashrc| |
| Line 91: |
Line 100: |
| <pre> | | <pre> |
| */* targets: i686-pc-linux-gnu | | */* targets: i686-pc-linux-gnu |
| */* build_options: jobs=5 -recommended_tests -expensive_tests symbols=strip | | */* build_options: jobs=13 -recommended_tests -expensive_tests symbols=strip |
| */* LINGUAS: -* de | | */* LINGUAS: -* de |
| */* VIDEO_DRIVERS: -* | | */* VIDEO_DRIVERS: -* |
| Line 100: |
Line 109: |
| */* -bash-completion | | */* -bash-completion |
| */* parts: -configuration -documentation | | */* parts: -configuration -documentation |
| sys-sound/alsa-plugins pulseaudio
| | dev-libs/libglvnd X |
| media-sound/pulseaudio -tcpd -systemd
| |
| </pre> | | </pre> |
| }} | | }} |
|
| |
|
| {{Root|cave -E paludis:cross resolve --make cross-compile pulseaudio --ignore-from systemd --ignore-from pulseaudio --suggestions ignore --recommendations ignore}} | | {{File|//etc/paludis-cross/suggestions.conf| |
| | |
| This will install ~40 packages which is enough for Steam to run if you use a NVIDIA card. If not you might have to install mesa and an additional driver to provide a 32bit libGL.so.
| |
| | |
| {{File|List of installed packages|
| |
| <pre> | | <pre> |
| n app-arch/bzip2:0::arbor 1.0.6 to ::i686-pc-linux-gnu
| | */* -*/* |
| n dev-libs/expat:0::arbor 2.1.0 to ::i686-pc-linux-gnu
| |
| n dev-libs/libffi:0::arbor 3.2.1 to ::i686-pc-linux-gnu
| |
| n dev-libs/openssl:0::arbor 1.0.2a to ::i686-pc-linux-gnu
| |
| n sound-themes/sound-theme-freedesktop:0::gnome 0.8 to ::i686-pc-linux-gnu
| |
| n sys-apps/skeleton-filesystem-layout:0::arbor 0.84 to ::i686-pc-linux-gnu
| |
| n sys-devel/gnuconfig:0::arbor 20140728 to ::i686-pc-linux-gnu
| |
| n sys-devel/libtool:0::arbor 2.4.6 to ::i686-pc-linux-gnu
| |
| n dev-libs/json-c:0::arbor 0.11-r2 to ::i686-pc-linux-gnu
| |
| n sys-libs/ncurses:0::arbor 5.9-r3 to ::i686-pc-linux-gnu
| |
| n sys-libs/timezone-data:0::arbor 2015b to ::i686-pc-linux-gnu
| |
| n sys-libs/zlib:0::arbor 1.2.8 to ::i686-pc-linux-gnu
| |
| n sys-sound/alsa-lib:0::arbor 1.0.29 to ::i686-pc-linux-gnu
| |
| n virtual/libssl:0::arbor 0-r1 to ::i686-pc-linux-gnu
| |
| n dev-lang/python:2.7::arbor 2.7.9 to ::i686-pc-linux-gnu
| |
| n app-admin/eclectic-python:2::arbor 2 to ::i686-pc-linux-gnu
| |
| n app-arch/xz:0::arbor 5.2.1 to ::i686-pc-linux-gnu
| |
| n dev-libs/orc:0.4::arbor 0.4.19 to ::i686-pc-linux-gnu
| |
| n dev-util/elfutils:0::arbor 0.161 to ::i686-pc-linux-gnu
| |
| n media-libs/libsndfile:0::media 1.0.25-r2 to ::i686-pc-linux-gnu
| |
| n media-libs/speexdsp:0::media 1.2_rc3 to ::i686-pc-linux-gnu
| |
| n sys-apps/attr:0::arbor 2.4.47 to ::i686-pc-linux-gnu
| |
| n sys-apps/coreutils:0::arbor 8.23-r3 to ::i686-pc-linux-gnu
| |
| n sys-apps/kmod:0::arbor 20 to ::i686-pc-linux-gnu
| |
| n sys-libs/cracklib:0::arbor 2.9.4 to ::i686-pc-linux-gnu
| |
| n sys-libs/gdbm:0::arbor 1.11 to ::i686-pc-linux-gnu
| |
| n sys-libs/libcap-ng:0::arbor 0.7.4 to ::i686-pc-linux-gnu
| |
| n sys-libs/pam:0::arbor 1.1.8-r2 to ::i686-pc-linux-gnu
| |
| n sys-apps/kbd:0::arbor 2.0.2 to ::i686-pc-linux-gnu
| |
| n sys-libs/libcap:0::arbor 2.24-r1 to ::i686-pc-linux-gnu
| |
| n dev-libs/glib:2::arbor 2.44.0 to ::i686-pc-linux-gnu
| |
| n sys-apps/dbus:0::arbor 1.9.14 to ::i686-pc-linux-gnu
| |
| n sys-apps/pciutils:0::arbor 3.3.1 to ::i686-pc-linux-gnu
| |
| n sys-apps/systemd:0::arbor 219-r2 to ::i686-pc-linux-gnu
| |
| n sys-apps/util-linux:0::arbor 2.26.2 to ::i686-pc-linux-gnu
| |
| n dev-libs/glib-networking:0::arbor 2.44.0 to ::i686-pc-linux-gnu
| |
| n gnome-desktop/dconf:0::arbor 0.24.0 to ::i686-pc-linux-gnu
| |
| n gnome-desktop/gobject-introspection:1::gnome 1.44.0 to ::i686-pc-linux-gnu
| |
| n media-sound/pulseaudio:0::desktop 6.0-r3 to ::i686-pc-linux-gnu
| |
| n sys-sound/alsa-plugins:0::arbor 1.0.29 to ::i686-pc-linux-gnu
| |
| </pre> | | </pre> |
| }} | | }} |
| | |
| | {{Root|cave -E paludis:cross resolve --make cross-compile sys-kernel/linux-headers -x1}} |
| | {{Root|cave -E paludis:cross resolve --make cross-compile --no-dependencies-from sys-libs/glibc sys-libs/glibc -x1}} |
| | {{Root|<nowiki>/usr/i686-pc-linux-gnu/bin/localedef --prefix=/ -i de_DE -f UTF-8 de_DE.UTF-8</nowiki>}} |
| | |
| | {{Root|cave -E paludis:cross resolve --make cross-compile libatomic libgcc libstdc++ -x1}} |
| | |
| | Remove the previously set sys-devel/gcc -threads from /etc/paludis/options.conf and rebuild gcc: |
| | |
| | {{Root|cave resolve gcc --no-follow-installed-dependencies -x1}} |
| | |
| | {{Root|cave -E paludis:cross resolve --make cross-compile libatomic libgcc libstdc++ -x1}} |
| | |
| | Prevent installing unneeded Python cross dependencies: |
| | |
| | {{Root|cave -E paludis:cross resolve --make cross-compile xcb-proto -x1 -0 '*/*'}} |
|
| |
|
| === Cross environment (NVIDIA) === | | === Cross environment (NVIDIA) === |
|
| |
|
| Additionally install the 32bit libraries of nvidia-drivers.
| | Install the 32bit libraries of nvidia-drivers. |
|
| |
|
| {{File|/etc/paludis-cross/options.conf| | | {{File|/etc/paludis-cross/options.conf| |
| Line 164: |
Line 145: |
| }} | | }} |
|
| |
|
| {{Root|cave -E paludis:cross resolve --make cross-compile nvidia-drivers --ignore-from systemd --ignore-from pulseaudio --ignore-from xorg-server --suggestions ignore --recommendations ignore}} | | {{Root|cave -E paludis:cross resolve --make cross-compile nvidia-drivers --ignore-from xorg-server}} |
|
| |
|
| This will install ~45 packages as dependencies of nvidia-drivers. Steam itself however only requires a 32bit libGL.so an non of the mesa/dri/Xorg stuff.
| | === List of installed cross packages === |
|
| |
|
| {{File|List of installed packages| | | {{File|List of installed packages| |
| <pre> | | <pre> |
| n dev-libs/libpthread-stubs:0::x11 0.3-r1 to ::i686-pc-linux-gnu
| | dev-libs/libbsd |
| n media-libs/libpng:1.6::arbor 1.6.17 to ::i686-pc-linux-gnu
| | dev-libs/libglvnd |
| n fonts/font-alias:0::x11 1.0.3 to ::i686-pc-linux-gnu
| | dev-libs/libmd |
| n media-libs/freetype:2::x11 2.5.5 to ::i686-pc-linux-gnu
| | dev-libs/libpthread-stubs |
| n x11-libs/libpciaccess:0::x11 0.13.4 to ::i686-pc-linux-gnu
| | sys-kernel/linux-headers |
| n x11-libs/pixman:1::x11 0.32.6-r1 to ::i686-pc-linux-gnu
| | sys-libs/glibc |
| n x11-libs/libICE:0::x11 1.0.9 to ::i686-pc-linux-gnu
| | sys-libs/libatomic |
| n x11-libs/libXau:0::x11 1.0.8 to ::i686-pc-linux-gnu
| | sys-libs/libgcc |
| n x11-libs/libXdmcp:0::x11 1.1.2 to ::i686-pc-linux-gnu
| | sys-libs/libstdc++ |
| n x11-libs/libfontenc:0::x11 1.1.3 to ::i686-pc-linux-gnu
| | x11-dri/libdrm |
| n x11-libs/libxshmfence:0::x11 1.2 to ::i686-pc-linux-gnu
| | x11-drivers/nvidia-drivers |
| n x11-apps/xkeyboard-config:0::x11 2.14-r2 to ::i686-pc-linux-gnu
| | x11-libs/libvdpau |
| n x11-libs/libxcb:0::x11 1.11 to ::i686-pc-linux-gnu
| | x11-libs/libX11 |
| n x11-libs/libSM:0::x11 1.2.2-r1 to ::i686-pc-linux-gnu
| | x11-libs/libXau |
| n x11-dri/libdrm:0::x11 2.4.60 to ::i686-pc-linux-gnu
| | x11-libs/libxcb |
| n x11-libs/xtrans:0::x11 1.3.5 to ::i686-pc-linux-gnu
| | x11-libs/libXdmcp |
| n x11-libs/libX11:0::x11 1.6.3-r1 to ::i686-pc-linux-gnu
| | x11-libs/libXext |
| n x11-libs/libXext:0::x11 1.3.3 to ::i686-pc-linux-gnu
| | x11-libs/xtrans |
| n x11-libs/libXfixes:0::x11 5.0.1 to ::i686-pc-linux-gnu
| | x11-proto/xcb-proto |
| n x11-libs/libXdamage:0::x11 1.1.4 to ::i686-pc-linux-gnu
| | x11-proto/xorgproto |
| n x11-libs/libXi:0::x11 1.7.4 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXrender:0::x11 0.9.9 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXres:0::x11 1.0.7 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXt:0::x11 1.1.5 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXmu:0::x11 1.1.2-r1 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXpm:0::x11 3.5.11 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXxf86misc:0::x11 1.0.3 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXxf86vm:0::x11 1.1.4-r1 to ::i686-pc-linux-gnu
| |
| n dev-libs/libepoxy:0::x11 1.2-r1 to ::i686-pc-linux-gnu
| |
| n media-libs/fontconfig:0::x11 2.11.1 to ::i686-pc-linux-gnu
| |
| n fonts/dejavu:0::x11 2.34 to ::i686-pc-linux-gnu
| |
| n x11-dri/mesa:0::x11 10.5.5 to ::i686-pc-linux-gnu
| |
| n fonts/font-adobe-100dpi:0::x11 1.0.3 to ::i686-pc-linux-gnu
| |
| n fonts/font-adobe-75dpi:0::x11 1.0.3 to ::i686-pc-linux-gnu
| |
| n fonts/font-cursor-misc:0::x11 1.0.3 to ::i686-pc-linux-gnu
| |
| n fonts/font-misc-misc:0::x11 1.1.2 to ::i686-pc-linux-gnu
| |
| n x11-libs/libXfont:0::x11 1.5.1 to ::i686-pc-linux-gnu
| |
| n x11-libs/libvdpau:0::x11 1.1 to ::i686-pc-linux-gnu
| |
| n x11-libs/libxkbfile:0::x11 1.0.9 to ::i686-pc-linux-gnu
| |
| n x11-apps/xkbcomp:0::x11 1.3.0 to ::i686-pc-linux-gnu
| |
| n x11-libs/libxkbui:0::x11 1.0.2-r1 to ::i686-pc-linux-gnu
| |
| n x11-server/xorg-server:0::x11 1.17.1 to ::i686-pc-linux-gnu
| |
| n x11-drivers/nvidia-drivers:0::hardware 349.16-r2 to ::i686-pc-linux-gnu
| |
| </pre> | | </pre> |
| }} | | }} |
|
| |
| === Finalize ===
| |
|
| |
| For Steam to run you'll need to create a symlink, there's ongoing work on a tool called multiload which will eventually solve that problem in the future and this workaround won't be neccessary anymore.
| |
|
| |
| {{Root|ln -s /usr/i686-pc-linux-gnu/lib/ld-linux.so.2 /usr/x86_64-pc-linux-gnu/lib}}
| |
|
| |
| To remove the symlink:
| |
|
| |
| {{Root|rm /usr/x86_64-pc-linux-gnu/lib/ld-linux.so.2}}
| |
Refresh Steam files
If there are any problems with your Steam installation first try to reset it's configuration and files. This won't affect your currently installed games.
$ steam --reset
Start Steam with debug output enabled
$ STEAM_RUNTIME=1 STEAM_DEBUG=1 steam
Debug a Steam application / game with strace
Open the Steam options of the specific application and enter the following command into the start parameters form.
$ strace %command% 2>&1 | tee ~/strace.log
Engine and Game specific workarounds (required on e.g. Fedora)
No sound in Unity based games (e.g. in Shroud of the Avatar: Forsaken Virtues)
Most of the time this is solved by removing the PulseAudio libraries Steam ships with its STEAM_RUNTIME to force the game to use the system installed PulseAudio libraries.
$ rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libpulse*
$ rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libpulse*
Killing Floor
Killing Floor ships it own openal library instead of relying on the (working) one which comes with the steam runtime.
$ cd ~/.steam/steam/SteamApps/common/KillingFloor/System
$ rm openal.so
$ ln -s ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libopenal.so.1 openal.so
To play the German version with gore (uncut) set the game language to English in Steam and then edit the configuration file by adding an additional line.
File: ~/.killingfloor/System/KillingFloor.ini
[Engine.Engine]
bdevgoreoverride=True
Duke Nukem 3D: Megaton Edition
$ cd ~/.steam/steam/SteamApps/common/Duke\ Nukem\ 3D/bin/
$ ln -s /usr/lib/nvidia/libGL.so.1 libGL.so
Shadow Warrior Classic Redux
$ cd ~/.steam/steam/SteamApps/common/Shadow\ Warrior\ Classic/bin/
$ ln -s /usr/lib/nvidia/libGL.so.1 libGL.so
Dungeon Defenders Eternity
Right click the Dungeon Defenders Eternity in the Steam library, choose "Link Steam Libraries" in the context menu.
Steam on Exherbo Linux
Host - Prepare system tools
File: /etc/paludis/options.conf
# i686-pc-linux-gnu cross
dev-util/pkgconf targets: i686-pc-linux-gnu
sys-devel/binutils targets: i686-pc-linux-gnu
sys-devel/gcc targets: i686-pc-linux-gnu
app-admin/eclectic-gcc targets: i686-pc-linux-gnu
This is required temporarily to get you started and will be reverted later on.
File: /etc/paludis/options.conf
sys-devel/gcc -threads
# cave resolve pkgconf binutils gcc eclectic-gcc -x1
Target - Prepare cross environment
Create a copy of your paludis environment.
# cp -a /etc/paludis /etc/paludis-cross
In the cross environment you can remove any repository .conf not needed, required are ::arbor, ::desktop, ::gnome, ::media and ::x11 (::hardware for nvidia-drivers).
File: /etc/paludis-cross/repositories/i686-pc-linux-gnu.conf
format = exndbam
location = ${root}/var/db/paludis/repositories/cross-installed/i686-pc-linux-gnu
name = i686-pc-linux-gnu
split_debug_location = /usr/i686-pc-linux-gnu/lib/debug
tool_prefix = i686-pc-linux-gnu-
cross_compile_host = i686-pc-linux-gnu
# mkdir -p /var/db/paludis/repositories/cross-installed/i686-pc-linux-gnu
File: /etc/paludis-cross/bashrc
CHOST="x86_64-pc-linux-gnu"
x86_64_pc_linux_gnu_CFLAGS="-pipe -O2 -march=native"
i686_pc_linux_gnu_CFLAGS="-pipe -O2 -march=native"
File: /etc/paludis-cross/platforms.conf
*/* x86 ~x86
File: /etc/paludis-cross/options.conf
*/* targets: i686-pc-linux-gnu
*/* build_options: jobs=13 -recommended_tests -expensive_tests symbols=strip
*/* LINGUAS: -* de
*/* VIDEO_DRIVERS: -*
*/* INPUT_DRIVERS: -*
*/* X86_CPU_FEATURES: -* avx mmx sse sse2 sse3 ssse3 sse4.1 sse4.2
# Steam minimal dependencies setup
*/* -bash-completion
*/* parts: -configuration -documentation
dev-libs/libglvnd X
File: //etc/paludis-cross/suggestions.conf
*/* -*/*
# cave -E paludis:cross resolve --make cross-compile sys-kernel/linux-headers -x1
# cave -E paludis:cross resolve --make cross-compile --no-dependencies-from sys-libs/glibc sys-libs/glibc -x1
# /usr/i686-pc-linux-gnu/bin/localedef --prefix=/ -i de_DE -f UTF-8 de_DE.UTF-8
# cave -E paludis:cross resolve --make cross-compile libatomic libgcc libstdc++ -x1
Remove the previously set sys-devel/gcc -threads from /etc/paludis/options.conf and rebuild gcc:
# cave resolve gcc --no-follow-installed-dependencies -x1
# cave -E paludis:cross resolve --make cross-compile libatomic libgcc libstdc++ -x1
Prevent installing unneeded Python cross dependencies:
# cave -E paludis:cross resolve --make cross-compile xcb-proto -x1 -0 '*/*'
Cross environment (NVIDIA)
Install the 32bit libraries of nvidia-drivers.
File: /etc/paludis-cross/options.conf
x11-drivers/nvidia-drivers -tools
# cave -E paludis:cross resolve --make cross-compile nvidia-drivers --ignore-from xorg-server
List of installed cross packages
File: List of installed packages
dev-libs/libbsd
dev-libs/libglvnd
dev-libs/libmd
dev-libs/libpthread-stubs
sys-kernel/linux-headers
sys-libs/glibc
sys-libs/libatomic
sys-libs/libgcc
sys-libs/libstdc++
x11-dri/libdrm
x11-drivers/nvidia-drivers
x11-libs/libvdpau
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/xtrans
x11-proto/xcb-proto
x11-proto/xorgproto