Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wine not executing most binaries #28504

Closed
a1russell opened this issue Aug 23, 2017 · 16 comments
Closed

Wine not executing most binaries #28504

a1russell opened this issue Aug 23, 2017 · 16 comments

Comments

@a1russell
Copy link
Contributor

Issue description

After upgrading my system recently, Wine has stopped working correctly. I do not remember when I last upgraded this system before that, even though it could be helpful in pinpointing the problem. I'm running wineWow/unstable release (I've also tried staging).

I see this error message when running either of my Wine-installed apps (Blizzard Battle.net or Steam):

libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  168
  Current serial number in output stream:  172

I'm using nvidia driver and have opengl.driSupport32Bit enabled. Googling this error message suggests to me that Wine no longer has access to the 32-bit driver.

Strange thing is that the launchers don't immediately crash. Battle.net shows a loading bar, and Steam asks me to log in before giving up.

Steps to reproduce

  1. Have wineWow with staging or testing release.
  2. Have Battle.net or Steam installed via Wine
  3. Run either Battle.net or Steam via Wine

Technical details

  • System: (NixOS: nixos-version, Ubuntu/Fedora: lsb_release -a, ...)
  • Nix version: (run nix-env --version)
  • Nixpkgs version: (run nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion)
  • Sandboxing enabled: (run grep build-use-sandbox /etc/nix/nix.conf)

@abbradar @bendlas @avnik @7c6f434c

@avnik
Copy link
Contributor

avnik commented Aug 23, 2017

I usually tests only 32bit builds of wine, with open source radeon drivers. Do other apps (glxgears, native games) able to find proper (nvidia's) libGL.so?

@vcunat
Copy link
Member

vcunat commented Aug 23, 2017

I have nixos + nvidia drivers + wine (32bit) + steam, without any problems so far. I don't update too often, though. @a1russell: you follow master/unstable?

@a1russell
Copy link
Contributor Author

I'm not in front of my NixOS system at the moment, but I do remember testing with glxgears that direct rendering was still enabled, and it was. I don't have any native games.

@vcunat I do follow the unstable channel, yes.

@abbradar
Copy link
Member

@a1russell Can you run ${pkgsi686Linux.glxinfo}/bin/glxgears?

@a1russell
Copy link
Contributor Author

I can't remember how to get the value of ${pkgsi686Linux.glxinfo}, and I can't find any documentation on how to do so, either. I have many glxinfo directories in /nix/store.

@abbradar
Copy link
Member

Try $(nix-build --no-out-link -A pkgsi686Linux.glxinfo '<nixpkgs>')/bin/glxgears

@a1russell
Copy link
Contributor Author

Yep, the gears are a-turnin'. glxinfo using the same method also gives me direct rendering

@a1russell
Copy link
Contributor Author

a1russell commented Aug 25, 2017

I've now tried top-level wineStaging and wine packages, with no config or overrides (so pretty sure 32 bit only), only to see the same problem.

I've also tried installing Battle.net fresh...

@avnik
Copy link
Contributor

avnik commented Aug 25, 2017 via email

@a1russell
Copy link
Contributor Author

No, wineStaging is a version (unstable+patchset).
And can be built for both 64- and 32-bit.

You caught my post before I edited it. Even still, I was wrong. Looks like the default changes based on architecture.

I have now set override (installing my special package, wine_, of course):

    wine_ = winePackages.full.override {
      wineRelease = "unstable";
      wineBuild = "wine32";
    };

And still get the same problem.

On another note, for my OP, I was using config:

  wine = {
    release = "unstable";
    build = "wineWow";
  };

but when I switched to overrides for wineWow, I get a new problem:

$ /nix/store/9rsimzmxbgprfbi9id57pl1fc5s1jknc-wine-wow-2.14/bin/wine64: not an ELF binary... don't know how to load it
/nix/store/9rsimzmxbgprfbi9id57pl1fc5s1jknc-wine-wow-2.14/bin/wine64: not an ELF binary... don't know how to load it

As for testing, I haven't looked for anything optimal, but I'm using Battle.net launcher now, since I'm pretty sure it allows both architectures.

@MP2E
Copy link

MP2E commented Aug 25, 2017

Add the line "gstreamerSupport = false;" to your wineWow derivation to fix the "not an ELF" message. Simply a workaround for now, since the cause isn't known yet.

@a1russell
Copy link
Contributor Author

Thanks @MP2E

@a1russell
Copy link
Contributor Author

Closing since:

  • no one else seems to have the same problem,
  • the package maintainers don't seem interested in helping find the problem,
  • whoever caused the bug either isn't aware of the problem or isn't interested in fixing it,
  • I've moved on to another distro.

@lheckemann
Copy link
Member

For future reference: 32-bit OpenGL libraries are made available on 64-bit NixOS if the hardware.opengl.driSupport32Bit is set to true.

@a1russell
Copy link
Contributor Author

As I stated in the original issue description, I already had driSupport32Bit enabled.

@bendlas
Copy link
Contributor

bendlas commented Jan 22, 2018

This issue should be fixed by: ea4320d

infinisil added a commit to infinisil/system that referenced this issue May 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants