manual: steam on nouveau also requires newStdCpp
This commit is contained in:
parent
15502421c7
commit
a9a3af423f
1 changed files with 33 additions and 25 deletions
|
@ -101,7 +101,7 @@ modulesTree = [kernel]
|
||||||
$ nix-env -i ncurses
|
$ nix-env -i ncurses
|
||||||
$ export NIX_CFLAGS_LINK=-lncurses
|
$ export NIX_CFLAGS_LINK=-lncurses
|
||||||
$ make menuconfig ARCH=<replaceable>arch</replaceable></screen>
|
$ make menuconfig ARCH=<replaceable>arch</replaceable></screen>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
@ -111,9 +111,9 @@ $ make menuconfig ARCH=<replaceable>arch</replaceable></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -409,24 +409,24 @@ it. Place the resulting <filename>package.nix</filename> file into
|
||||||
<title>Steam in Nix</title>
|
<title>Steam in Nix</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Steam is distributed as a <filename>.deb</filename> file, for now only
|
Steam is distributed as a <filename>.deb</filename> file, for now only
|
||||||
as an i686 package (the amd64 package only has documentation).
|
as an i686 package (the amd64 package only has documentation).
|
||||||
When unpacked, it has a script called <filename>steam</filename> that
|
When unpacked, it has a script called <filename>steam</filename> that
|
||||||
in ubuntu (their target distro) would go to <filename>/usr/bin
|
in ubuntu (their target distro) would go to <filename>/usr/bin
|
||||||
</filename>. When run for the first time, this script copies some
|
</filename>. When run for the first time, this script copies some
|
||||||
files to the user's home, which include another script that is the
|
files to the user's home, which include another script that is the
|
||||||
ultimate responsible for launching the steam binary, which is also
|
ultimate responsible for launching the steam binary, which is also
|
||||||
in $HOME.
|
in $HOME.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Nix problems and constraints:
|
Nix problems and constraints:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>We don't have <filename>/bin/bash</filename> and many
|
<listitem><para>We don't have <filename>/bin/bash</filename> and many
|
||||||
scripts point there. Similarly for <filename>/usr/bin/python</filename>
|
scripts point there. Similarly for <filename>/usr/bin/python</filename>
|
||||||
.</para></listitem>
|
.</para></listitem>
|
||||||
<listitem><para>We don't have the dynamic loader in <filename>/lib
|
<listitem><para>We don't have the dynamic loader in <filename>/lib
|
||||||
</filename>.</para></listitem>
|
</filename>.</para></listitem>
|
||||||
<listitem><para>The <filename>steam.sh</filename> script in $HOME can
|
<listitem><para>The <filename>steam.sh</filename> script in $HOME can
|
||||||
not be patched, as it is checked and rewritten by steam.</para></listitem>
|
not be patched, as it is checked and rewritten by steam.</para></listitem>
|
||||||
<listitem><para>The steam binary cannot be patched, it's also checked.</para></listitem>
|
<listitem><para>The steam binary cannot be patched, it's also checked.</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -446,10 +446,10 @@ it. Place the resulting <filename>package.nix</filename> file into
|
||||||
<title>How to play</title>
|
<title>How to play</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
For 64-bit systems it's important to have
|
For 64-bit systems it's important to have
|
||||||
<programlisting>hardware.opengl.driSupport32Bit = true;</programlisting>
|
<programlisting>hardware.opengl.driSupport32Bit = true;</programlisting>
|
||||||
in your <filename>/etc/nixos/configuration.nix</filename>. You'll also need
|
in your <filename>/etc/nixos/configuration.nix</filename>. You'll also need
|
||||||
<programlisting>hardware.pulseaudio.support32Bit = true;</programlisting>
|
<programlisting>hardware.pulseaudio.support32Bit = true;</programlisting>
|
||||||
if you are using PulseAudio - this will enable 32bit ALSA apps integration.
|
if you are using PulseAudio - this will enable 32bit ALSA apps integration.
|
||||||
To use the Steam controller, you need to add
|
To use the Steam controller, you need to add
|
||||||
<programlisting>services.udev.extraRules = ''
|
<programlisting>services.udev.extraRules = ''
|
||||||
|
@ -470,23 +470,31 @@ it. Place the resulting <filename>package.nix</filename> file into
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>Steam fails to start. What do I do?</term>
|
<term>Steam fails to start. What do I do?</term>
|
||||||
<listitem><para>Try to run
|
<listitem><para>Try to run
|
||||||
<programlisting>strace steam</programlisting>
|
<programlisting>strace steam</programlisting>
|
||||||
to see what is causing steam to fail.</para></listitem>
|
to see what is causing steam to fail.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>Using the FOSS Radeon drivers</term>
|
<term>Using the FOSS Radeon or nouveau (nvidia) drivers</term>
|
||||||
<listitem><itemizedlist><listitem><para>
|
<listitem><itemizedlist><listitem><para>
|
||||||
The open source radeon drivers need a newer libc++ than is provided
|
Both the open source radeon drivers as well as the nouveau drivers (nvidia)
|
||||||
by the default runtime, which leads to a crash on launch. Use
|
need a newer libc++ than is provided by the default runtime, which leads to a
|
||||||
<programlisting>environment.systemPackages = [(pkgs.steam.override { newStdcpp = true; })];</programlisting>
|
crash on launch. Use <programlisting>environment.systemPackages =
|
||||||
in your config if you get an error like
|
[(pkgs.steam.override { newStdcpp = true; })];</programlisting> in your config
|
||||||
|
if you get an error like
|
||||||
<programlisting>
|
<programlisting>
|
||||||
libGL error: unable to load driver: radeonsi_dri.so
|
libGL error: unable to load driver: radeonsi_dri.so
|
||||||
libGL error: driver pointer missing
|
libGL error: driver pointer missing
|
||||||
libGL error: failed to load driver: radeonsi
|
libGL error: failed to load driver: radeonsi
|
||||||
libGL error: unable to load driver: swrast_dri.so
|
libGL error: unable to load driver: swrast_dri.so
|
||||||
|
libGL error: failed to load driver: swrast</programlisting>
|
||||||
|
or
|
||||||
|
<programlisting>
|
||||||
|
libGL error: unable to load driver: nouveau_dri.so
|
||||||
|
libGL error: driver pointer missing
|
||||||
|
libGL error: failed to load driver: nouveau
|
||||||
|
libGL error: unable to load driver: swrast_dri.so
|
||||||
libGL error: failed to load driver: swrast</programlisting></para></listitem>
|
libGL error: failed to load driver: swrast</programlisting></para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Steam ships statically linked with a version of libcrypto that
|
Steam ships statically linked with a version of libcrypto that
|
||||||
|
@ -504,7 +512,7 @@ libGL error: failed to load driver: swrast</programlisting></para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
There is no java in steam chrootenv by default. If you get a message like
|
There is no java in steam chrootenv by default. If you get a message like
|
||||||
<programlisting>/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found</programlisting>
|
<programlisting>/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found</programlisting>
|
||||||
You need to add
|
You need to add
|
||||||
<programlisting> steam.override { withJava = true; };</programlisting>
|
<programlisting> steam.override { withJava = true; };</programlisting>
|
||||||
to your configuration.
|
to your configuration.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
@ -519,14 +527,14 @@ libGL error: failed to load driver: swrast</programlisting></para></listitem>
|
||||||
|
|
||||||
<title>steam-run</title>
|
<title>steam-run</title>
|
||||||
<para>
|
<para>
|
||||||
The FHS-compatible chroot used for steam can also be used to run
|
The FHS-compatible chroot used for steam can also be used to run
|
||||||
other linux games that expect a FHS environment.
|
other linux games that expect a FHS environment.
|
||||||
To do it, add
|
To do it, add
|
||||||
<programlisting>pkgs.(steam.override {
|
<programlisting>pkgs.(steam.override {
|
||||||
nativeOnly = true;
|
nativeOnly = true;
|
||||||
newStdcpp = true;
|
newStdcpp = true;
|
||||||
}).run</programlisting>
|
}).run</programlisting>
|
||||||
to your configuration, rebuild, and run the game with
|
to your configuration, rebuild, and run the game with
|
||||||
<programlisting>steam-run ./foo</programlisting>
|
<programlisting>steam-run ./foo</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue