Every time I try to launch steam I only get the following message:
mkdir: cannot create directory ‘/tmp’: File exists
cp: cannot create regular file ‘/home/philipp/.local/share/Steam/bootstrap.tar.xz’: Permission denied
Running Steam on nixos 16.03pre71289.7ae05ed 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
Installing breakpad exception handler for appid(steam)/version(0_client)
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Excerpt of my nix config:
hardware-configuration.nix
hardware = {
opengl.driSupport = true;
pulseaudio.enable = true;
opengl.driSupport32Bit = true;
pulseaudio.support32Bit = true;
};
Thank you for your help, I will happily provide any more information you might need.
Ouch, this is a new incarnation of https://github.com/NixOS/nixpkgs/issues/9003. I'll look into this, thanks for the reporting!
When did it last work for you? (on the same machine/configuration) For example, I have nonstandard mount setup of $HOME, which results into missing vital stuff in the chroot by default (I add a mount by hand into the chroot).
The setup never worked since this is a new install (I'm new to nixos).
My home is pretty standard:
/dev/mapper/lvm-philipphome on /home/philipp type ext4 (rw,relatime,data=ordered)
Hmm, that's strange -- we have libstdc++
overridden by our version, which should fix the bug. I suspect Steam uses its own libstdc++
anyway -- I'll investigate more for a chance to avoid using nasty LD_PRELOAD
again.
Looks like there's sadly no other option. Can you please test if https://github.com/abbradar/nixpkgs/commit/0e7cc21b33f3406cebf0851e6a11761b0864639b fixes the problem for you?
test.nix
file with contents like this in the root of nixpkgs
:{ pkgs ? import ./ { } }:
pkgs.steam.override { workaroundLibstdc = true; }
nix-build test.nix
result/bin/steam
and test.ι tried to run your test but I can't get it to work. If I follow your guide as it is, I just get
error: syntax error, unexpected '/', expecting ID or OR_KW or DOLLAR_CURLY or '"', at /home/philipp/workspace/nixpkgs/test.nix:1:18
If I change ./
to the directory I cloned from github I get
error: anonymous function at /home/philipp/workspace/nixpkgs/pkgs/games/steam/default.nix:1:1 called with unexpected argument ‘workaroundLibstdc’, at /home/philipp/workspace/nixpkg /lib/customisation.nix:58:12
I also ran LD_PRELOAD='/steamrt/amd64/lib/libstdc++.so.6:/steamrt/i386/lib/libstdc++.so.6' steam
but that only returns
ERROR: ld.so: object '/steamrt/amd64/lib/libstdc++.so.6' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/steamrt/i386/lib/libstdc++.so.6' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/steamrt/amd64/lib/libstdc++.so.6' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/steamrt/i386/lib/libstdc++.so.6' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
mkdir: cannot create directory ‘/tmp’: File exists
cp: cannot create regular file ‘/home/philipp/.local/share/Steam/bootstrap.tar.xz’: Permission denied
Running Steam on nixos 16.03pre71289.7ae05ed 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
Installing breakpad exception handler for appid(steam)/version(0_client)
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Ouch, I'm sorry, this should have been ./.
, not ./
. Anyway, have you cherry-picked my patch? It's strange it doesn't have workaroundLibstdc
argument, I added it with the patch.
I did cherry pick your patch, there was a merge conflict but I resolved it. Maybe I made a mistake?
Hmm, the resulting chrootenv looks veery old, I think it was like that somewhere in the spring and definitely before 15.09. Try this branch: https://github.com/abbradar/nixpkgs/tree/steam-stdlibc . It's on top of latest unstable
channel.
Also seeing this with intel:
cp: cannot create regular file ‘/home/jakob/.local/share/Steam/bootstrap.tar.xz’: Permission denied
Running Steam on nixos 16.03.git.c828102 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
Installing breakpad exception handler for appid(steam)/version(0_client)
libGL error: failed to open drm device: Permission denied
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Does anyone still see this? If yes, on what branch?
I do still see it on https://nixos.org/channels/nixos-unstable
Can you please try this patch and see if at least some games are fixed for you? Use the old guide above.
Unfortunately it doesn't.
Hm, there is one leftover libstdc++
that I see -- try https://github.com/abbradar/nixpkgs/commit/5a005207c119d8bd81c3f067de80367b3d4540ac, please (use it combined with the previous patch).
EDIT: changed URL to the correct patch.
That also didn't work.
That did it! Should I revert the other patches to look whether this fix alone is enough or would they be applied anyway?
Yes, please. Also please test what games do work for you -- some most certainly wouldn't.
edit:
Revised patchset at https://github.com/NixOS/nixpkgs/pull/12404
Sadly I don't have any statistics on games which actually work with new libstdc++
-- I think someone reported DotA 2 as broken before, but I don't have the game or a Radeon card to test myself.
Let's keep this bug open for discovering possible new workarounds, tests and Steam updates.
Most games seem to run. I have been able to run and get into actual gameplay of
I couldn't find any games that do not run so far.
Please try this branch with this test.nix
(as in old guide):
{ pkgs ? import ./. { } }:
pkgs.steam.override { withMesa = true; }
This will have a non-trivial amount of rebuilding, but should be the proper fix of your problem.
I tried your branch but the result was negative. The old error of not finding the driver pointer persists. Sorry for taking so long.
Hm, what would happen if you clean LD_LIBRARY_PATH? Run LD_LIBRARY_PATH= steam
.
That doesn't change anything.
Oh, that was because I actually set LD_LIBRARY_PATH
somewhere inside chrootenv
itself. Pull from the branch and try again, please.
That build also failed in the same way.
Very strange. I'm out for a bit, can you please make two changes in pkgs/games/steam/chrootenv.nix
in my branch:
steam
to bash
in runScript
;glxinfo
to targetPackages
. Then run and call:
echo $LD_LIBRARY_PATH
glxinfo
And show me the results?
I also ran glxgears in the steam-chrootfenv shell just for fun and it worked.
More and more interesting. What's in LD_LIBRARY_PATH?
Sorry, I forgot to say that it's empty.
...and Steam fails nevertheless, huh?
find /steamrt -name \*stdc\*
find /usr - name \*stdc\*
Steam fails with the same cannot load driver
, correct?
The exact errors are still on steam launch are
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
But I guess this is what you meant.
Both finds don't find anything inside the steam-chrootenv.
Follow up for new instance of this error:
glxgears is only 32Bit with
nix-build -E 'with import ./. {}; pkgsi686Linux.steamPackages.steam-runtime-wrapped.override {newStdcpp = true; }'
and 64Bit with
nix-build -E 'with import ./. {}; steamPackages.steam-runtime-wrapped.override { newStdcpp = true; }'
Both run fine.
What does LIBGL_DEBUG=verbose steam
say?
In my case it complains about
libGL: dlopen /usr/lib32/xorg/modules/dri/r600_dri.so failed (/home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib32/xorg/modules/dri/r600_dri.so))
which basically resolves down to this problem. Normally you would be able to override this kind of error with LD_LIBRARY_PATH variable as you say above, but steam.sh (line 702) overrides.. any previous override. So you are back to start.
Editing the start script or deleting libs from steam folder seemed unorthodox.
So (once taken into account of another error) I fixed it with export LD_PRELOAD=/usr/lib32/libstdc++.so.6:/usr/lib32/libgpg-error.so.0
p.s: adjust paths for Nix, should mine from Arch not compute :s
I already resolved the issue with @abbradar should have said something about that, sorry. We are keeping this thread open because this is a recurring error that comes back due to different upgrades or changes of the system and we need to resolve it again.
On June 5, 2016 11:38:13 PM GMT+02:00, mirh [email protected] wrote:
What does
LIBGL_DEBUG=verbose steam
say?
In my case it complains aboutlibGL: dlopen /usr/lib32/xorg/modules/dri/r600_dri.so failed
(/home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6:
version `CXXABI_1.3.8' not found (required by
/usr/lib32/xorg/modules/dri/r600_dri.so))
which basically resolves down to this
problem.
Normally you would be able to override this kind of error with
LD_LIBRARY_PATH variable as you say above, but steam.sh (line 702)
overrides.. any previous override. So you are back to start.Editing the start script or deleting libs from steam folder seemed
unorthodox.
So (once taken into account of
another
error) I fixed it withexport LD_PRELOAD=/usr/lib32/libstdc++.so.6:/usr/lib32/libgpg-error.so.0
p.s: adjust paths for Nix, should mine from Arch not compute :s
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/NixOS/nixpkgs/issues/10950#issuecomment-223839348
Then maybe the first comment could be edited to be more informative...
Completely forgot that I wanted to close this one. @pstn, let's instead re-open it when the issue is there again -- it makes it easier for people to navigate bugs.
I'm getting the following error. Is this the same issue?
cp: cannot create regular file '/home/user/.local/share/Steam/bootstrap.tar.xz': Permission denied
Running Steam on nixos 16.09pre87332.715e01c 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
Installing breakpad exception handler for appid(steam)/version(0)
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
It's probably a similar issue. Here are a few questions to get things started:
nixpkgs.config.steam = pkgs.steam.override {
newStdcpp = true;
};
set somewhere in your nix-config?16.09pre87332.715e01c (Flounder)
01:00.0 VGA compatible controller: NVIDIA Corporation GT218M [GeForce 310M] (rev a2)
nouveau
No. should I?
Yes, please try that. Never mesa needs another libcpp than what is in the steam runtime. This should fix it.
That seems to work thanks.
@pstn @abbradar
https://gist.github.com/Mounium/98eb1587d066210a4fe9b3f735260db9
May it be the related issue (except for this time not at starting steam, but starting a game _(borderlands 2)_)? Steam starts up fine with any of the following arguments being set to true. I tried newStdcpp, nativeOnly and runtimeOnly as well, all three display the linked error messages, also both 16.03 version and unstable. I have an AMD R9 380 (Tonga).
I own this specific game and could reproduce the error.
My first guess is that it's not directly related but that there is something missing in our runtime.
@abbradar @pstn I'm seeing the same error when using the radeon driver, that is:
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Setting nixpkgs.config.steam = pkgs.steam.override { newStdcpp = true; };
does not help.
To install overridden Steam you need to either use
nixpkgs.config.packageOverrides or use it directly in
environment.systemPackages:
environment.systemPackages = [(pkgs.steam.override { newStdcpp = true; })];
On August 12, 2016 5:06:02 PM GMT+03:00, Alexei Robyn
[email protected] wrote:
@abbradar <https://github.com/abbradar> @pstn
<https://github.com/pstn> I'm seeing the same error when using the
radeon driver, that is:
|libGL error: unable to load driver: radeonsi_dri.so libGL error:
driver pointer missing libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so libGL error:
failed to load driver: swrast |
Setting |nixpkgs.config.steam = pkgs.steam.override { newStdcpp =
true; };| does not help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/NixOS/nixpkgs/issues/10950#issuecomment-239455244>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABHtGuuodpaBCFfX-SuE1_wJCEE3TGFFks5qfH3KgaJpZM4Gf2C0>.
after messing with steam for a few hours, i managed to get it to run with https://gist.github.com/cleverca22/2fcaa5852bf13d80aa7b6bb3b285be9f
this proves that its not the opengl drivers lacking a feature like i first suspected, and it now feels like steam.sh is breaking the opengl drivers, i've begun editing mesa to make it more debugable
heh
i was told on irc that newStdcpp didnt work, but after hacking up my mesa source to show better errors i got
libGL error: dlopen /run/opengl-driver-32/lib/dri/radeonsi_dri.so failed (/steamrt/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version
GLIBCXX_3.4.21' not found (required by /run/opengl-driver-32/lib/dri/radeonsi_dri.so))`
so i tried nix-build -E 'with import <nixpkgs> {}; steam.override { newStdcpp = true; }' && ./result/bin/steam
and now it works just fine
though dosbox went full-screen mirrored, and failed to restore the monitor layout upon exit
@abbradar That gets steam itself running, but I am seeing issues with all the 3D games I tried:
CLOG: [CGame::AppWindowInit] Could not create GL context: GLXBadFBConfig[OpenGL] "Context" created.TTL_ASSERT:
2D games I tested launched OK (Hammerwatch, Factorio, Binding of Isaac: Rebirth). glxgears runs fine, here's the output of glxinfo.
@Shados Sadly I can't test this myself because I don't own an ATI card. I feel that we just need to override yet another library, but I don't know which one...
I have a radeon card and dota launches without any problems on the latest master, so it's probably not a library, because those should be the same for us two, I guess.
Dota 2 comes up with 'Failed to create an OpenGL context. Your graphics card must support at least OpenGL v3.1.'
can we re-open this or should this be a new issue? I see the same on 17.03.
Could this be due to #24116? (only fixed recently)
For reference, on nouveau steam only runs with newStdcpp = true
, for me at least.
I tried steam from 17.03 and unstable+ with NixOS on unstable+. Binary nvidia drivers don't seem to have problems with the default.
I just installed NixOS and ran into this issue. It turned out I had installed Steam via nix-env -i steam
as a regular user and putting override settings in my system-wide config had no effect.
So I needed to have Steam listed as a system-level package, by including it in /etc/nixos/configuration.nix
, with the newStdcpp override, by adding this to that file:
environment.systemPackages = with pkgs; [
# whatever other packages ...
(steam.override { newStdcpp = true; })
];
You might need to merge that with your current environment.systemPackages
setting if it's already in there.
Hopefully that helps someone in future. In all my searching for solutions to this issue, I never saw it mentioned that installing via nix-env
as a regular user might lead to this issue, so there it is.
If there's some way to set the override such that it'll affect a user-installed Steam, that might be a better solution.
wtok - thank you, this solved my issue!
Hey. I'm getting this error when trying to run League of Legends on the Radeon RX 5700 XT. Can we take another look, please?
Afaik League of Legends is neither on steam, nor natively on linux. How are you running it?
Most helpful comment
@abbradar That gets steam itself running, but I am seeing issues with all the 3D games I tried:
CLOG: [CGame::AppWindowInit] Could not create GL context: GLXBadFBConfig[OpenGL] "Context" created.TTL_ASSERT:
2D games I tested launched OK (Hammerwatch, Factorio, Binding of Isaac: Rebirth). glxgears runs fine, here's the output of glxinfo.