You are not logged in.

#1 2015-04-17 01:26:48

grish
Member
Registered: 2015-04-17
Posts: 6

[SOLVED] steam and nvidia geforce gtx 960m

I just got an ASUS ROG laptop (http://www.amazon.com/GL551JW-DS74-15-6 … B00T7XRGGC) and put Arch on it. I had Arch on my previous laptop, but never tried to use Steam on it. I've tried to get it working on this laptop, but I'm having issues. I've done as much Googling as I can without solving the problem, and I'm not really sure what to do, so I thought I'd ask here. Even though I've been using Arch for a couple of months now, I still don't really feel like I know what I'm doing, so it's hard to figure out what my next step should be.

I'm running on a 64-bit install of Arch with a GeForce GTX 960M graphics card.

What I've done so far: Installed a lot of libraries and drivers. I've installed nvidia, nvidia-utils, lib32-nvidia-libgl, lib32-nvidia-utils, lib32-mesa, everything I've seen suggested to get Steam working. I've also installed the proprietary driver from NVIDIA for my graphics card, found at http://www.nvidia.com/Download/driverRe … 3686/en-us. I installed bumblebee and enabled the bumblebeed.service,

When I run 'steam' from the terminal, I get this on stdout:

Running Steam on arch rolling 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1428965940)

And it just hangs there indefinitely. Other people have had that same issue, but none of their fixes seem to apply to me. For example, it seems common that people think this is caused by having the wrong driver installed for their card. However, when I run 'optirun glxgears -info', the first couple of lines of output are:

GL_RENDERER   = GeForce GTX 960M/PCIe/SSE2
GL_VERSION    = 4.5.0 NVIDIA 346.59
GL_VENDOR     = NVIDIA Corporation

Which looks like it's using the correct drivers for the card (the 'gears' also show up and spin smoothly as I think they should when using glxgears). Also, when I run 'lspci -k', the graphics card shows up and it says it's using the nvidia driver:

01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)
    Subsystem: ASUSTeK Computer Inc. Device 185d
    Kernel driver in use: nvidia
    Kernel modules: nouveau, nvidia

(I also have the nouveau driver installed, but uninstalling it didn't help).

I'm not sure how necessary having a proper xorg.conf file is to make the card work with Steam, but I've had issues with that file. Running 'sudo nvidia-xconfig' generates an xorg.conf file for me in /etc/X11, but when I try to start X with this file it doesn't work. It gives a bit of terminal output and tells me to look at /var/log/Xorg.1.log. When I look at that file, the relevant part of the output seems to be:

[  2709.239] (II) Module nvidia: vendor="NVIDIA Corporation"
[  2709.239] (II) NVIDIA dlloader X Driver  346.59  Tue Mar 31 13:17:41 PDT 2015
[  2709.239] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  2709.240] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[  2709.240] (==) NVIDIA(0): RGB weight 888
[  2709.240] (==) NVIDIA(0): Default visual is TrueColor
[  2709.240] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[  2709.240] (**) NVIDIA(0): Enabling 2D acceleration
[  2709.240] (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
[  2709.240] (EE) NVIDIA(0):     log file that the GLX module has been loaded in your X
[  2709.240] (EE) NVIDIA(0):     server, and that the module is the NVIDIA GLX module.  If
[  2709.240] (EE) NVIDIA(0):     you continue to encounter problems, Please try
[  2709.240] (EE) NVIDIA(0):     reinstalling the NVIDIA driver.
[  2709.240] (II) NVIDIA(GPU-0): Found DRM driver nvidia-drm (20150116)
[  2709.241] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 960M (GM107-A) at PCI:1:0:0 (GPU-0)
[  2709.241] (--) NVIDIA(0): Memory: 2097152 kBytes
[  2709.241] (--) NVIDIA(0): VideoBIOS: 82.07.68.00.09
[  2709.241] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[  2709.241] (--) NVIDIA(0): Valid display device(s) on GeForce GTX 960M at PCI:1:0:0
[  2709.241] (--) NVIDIA(0):     none
[  2709.241] (II) NVIDIA(0): Validated MetaModes:
[  2709.242] (II) NVIDIA(0):     "NULL"
[  2709.242] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[  2709.242] (WW) NVIDIA(0): Unable to get display device for DPI computation.
[  2709.242] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[  2709.242] (II) NVIDIA: Using 3072.00 MB of virtual memory for indirect memory
[  2709.242] (II) NVIDIA:     access.
[  2709.245] (II) NVIDIA(0): Setting mode "NULL"
[  2709.261] (II) NVIDIA(0): Built-in logo is bigger than the screen.
[  2709.265] (==) NVIDIA(0): Disabling shared memory pixmaps
[  2709.265] (==) NVIDIA(0): Backing store enabled
[  2709.265] (==) NVIDIA(0): Silken mouse enabled
[  2709.265] (**) NVIDIA(0): DPMS enabled
[  2709.265] (II) NVIDIA(0): [DRI2] Setup complete
[  2709.265] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia

I tried reinstalling the NVIDIA driver, which didn't help. I found someone with a similar issue online who said that their fix to the 'Failed to initialize the GLX module' issue was to add 'BusID "PCI:1:0:0"' to their xorg.conf, but that didn't help in my case. The xorg.conf file that gives me this output is:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 346.59  (buildmeister@swio-display-x86-rhel47-04)  Tue Mar 31 14:42:07 PDT 2015

Section "Monitor"
    Identifier     "Monitor0"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    BusID          "PCI:1:0:0"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

The BusID should also be corrected, as the output of 'lspci | grep NVIDIA' gives me:

01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

I'm able to start X without any xorg.conf file, and everything looks fine. Plus, I'm able to run glxgears, as described above, and it uses the NVIDIA card. So I'm wondering if I even need an xorg.conf file for this.

I tried to include as much detail as possible, hopefully someone has an idea of what may be going on (or, even better, has gotten this graphics card to work with Steam on Arch). Let me know if there's any other information I can include to help.

Last edited by grish (2015-04-17 20:45:40)

Offline

#2 2015-04-17 02:54:43

mojangsta
Member
Registered: 2013-04-01
Posts: 24

Re: [SOLVED] steam and nvidia geforce gtx 960m

Not sure if this is related but I was just overhauling my system (dropping systemd for sysv+openrc, rebuilding procps, X and nvidia-beta-dkms) and I had a similar issue. Beware: /usr/bin/steam often dies silently. To see what's really happening, run $HOME/.steam/root/steam.sh in a terminal. Make sure your nvidia{,-libgl,-utils} versions match your lib32-nvidia{-libgl,-utils} versions (this fixes inexplicable 'X Error: BadValue (integer parameter out of range for operation)') . Nouveau doesn't affect anything because 'nvidia' blacklists it. Your xorg.conf is fine. If you get farther, you will probably find the same issue I'm stuck at right now, a segfault. gdb and strace reveal nothing about the cause.

X-link relevant upstream bugreports:
https://github.com/ValveSoftware/steam- … ssues/3799
https://github.com/ValveSoftware/steam- … ssues/3763

Offline

#3 2015-04-17 03:11:40

grish
Member
Registered: 2015-04-17
Posts: 6

Re: [SOLVED] steam and nvidia geforce gtx 960m

Thanks for the tip about running steam from .steam instead, that does give me a bit more information.

I took your advice on making sure the nvidia and lib32-nvidia libraries matched, but there was a conflict between nvidia-libgl and bumblebee, so I had to uninstall bumblebee. This actually brought me back to an issue I had before, which is that when I start steam, I get an error saying 'OpenGL GLX extension not supported by display'. I installed bumblebee to fix this the last time I got this error, so I'm not really sure if I want bumblebee or not. Now I can't run glxgears though, so that doesn't seem like a good sign.

Edit: Okay, I've actually got it working. Which is pretty cool, I was getting pretty discouraged. I ended up reinstalling bumblebee (which apparently installs nvidia-libgl as a dependency? I'm not sure, because nvidia-libgl doesn't seem to be installed for me). Then, I installed lib32-mesa-libgl, which requires you to remove lib32-nvidia-libgl. After I did this, steam was able to start (which some garbled font output, but I quickly found the solution to that online. Just had to uninstalled a couple of fonts).

I'll try installing and running a game to see if everything works properly.

Last edited by grish (2015-04-17 03:24:52)

Offline

#4 2015-04-17 03:46:00

mojangsta
Member
Registered: 2013-04-01
Posts: 24

Re: [SOLVED] steam and nvidia geforce gtx 960m

ok wow I just realized I didnt even read most of your first post while musing, I'll get some sleep in a min.

I read up on bumblebee and it seems youre right that it's necessary on nvidia laptops. snip.

Edit: Read further. Primus isnt necessary but you're supposed to use 'optirun' from bumblebee to launch steam, etc.; without optirun bumblebee defaults to integrated gpu i.e. slow. So disregard primus it seems to be a generic intel/amd/nv driver, but definitely use optirun. Read further down for the best answer.

Last edited by mojangsta (2015-04-17 21:39:54)

Offline

#5 2015-04-17 06:36:46

AnAkkk
Member
Registered: 2014-03-03
Posts: 148

Re: [SOLVED] steam and nvidia geforce gtx 960m

mojangsta wrote:

ok wow I just realized I didnt even read most of your first post while musing, I'll get some sleep in a min.

I read up on bumblebee and it seems youre right that it's necessary on nvidia laptops. snip.

Edit: Read further. Primus isnt necessary but you're supposed to use 'optirun' from bumblebee to launch steam, etc.; without optirun bumblebee defaults to integrated gpu i.e. slow. So disregard primus it seems to be a generic intel/amd/nv driver, but definitely use optirun.

You don't have to run steam on the nvidia card, you can only run the games if you want.

Offline

#6 2015-04-17 06:38:51

grish
Member
Registered: 2015-04-17
Posts: 6

Re: [SOLVED] steam and nvidia geforce gtx 960m

I was able to run Bastion smoothly with just running 'steam' (as opposed to 'optirun steam'), maybe it does switch to the NVIDIA card automatically? I'll try other games and see if there's a difference though.

So, to anyone who comes across this page, here's what I had to do:

Install these libraries:

mesa
mesa-utils
lib32-mesa
lib32-mesa-libgl
nvidia
nvidia-utils

as well as the program bumblebee, and enable the service bumblebeed.service (sudo systemctl enable bumblebeed.service)

And I also installed the proprietary driver for my specific card from the NVIDIA website. I think this is all of the necessary bits. I also don't have an xorg.conf set up currently, the one I posted above still doesn't work with my system for some reason.

Last edited by grish (2015-04-17 06:39:08)

Offline

#7 2015-04-17 07:46:27

grish
Member
Registered: 2015-04-17
Posts: 6

Re: [SOLVED] steam and nvidia geforce gtx 960m

Okay, I don't think it's running on the NVIDIA card. And trying 'optirun steam' doesn't work either. I'm back at the 'Installing breakpad exception handler' issue I originally mentioned.

Last edited by grish (2015-04-17 07:49:12)

Offline

#8 2015-04-17 07:55:26

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,771

Re: [SOLVED] steam and nvidia geforce gtx 960m

Don't install the driver from the website, it will conflict with the arch based setup which should work with the packages you mentioned in your second to last post.

And read this carefully: https://wiki.archlinux.org/index.php/Bumblebee

Last edited by V1del (2015-04-17 07:57:16)

Offline

#9 2015-04-17 08:21:04

grish
Member
Registered: 2015-04-17
Posts: 6

Re: [SOLVED] steam and nvidia geforce gtx 960m

Okay so I uninstalled the driver that I got from the website. Then (thanks to the wiki page you linked), I figured out that I should try 'primusrun steam' instead of 'optirun steam', and the former works. So how exactly can I tell if it worked, if the NVIDIA card is the one being used? I suppose the game wouldn't run very well if it went off of the intel card, but for some reason I haven't found a simple way to determine which card is active. I tried bbswitch, but to no avail.

Last edited by grish (2015-04-17 09:56:49)

Offline

#10 2015-04-17 11:11:19

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,771

Re: [SOLVED] steam and nvidia geforce gtx 960m

https://wiki.archlinux.org/index.php/Bumblebee#Test

I suppose the output from glxgears will mention something along the lines of the nvidia renderer being used (you can always exchange optirun and  primusrun on any command you read about bumblebee)

Last edited by V1del (2015-04-17 11:12:56)

Offline

#11 2015-04-17 13:06:05

txus
Member
Registered: 2008-01-23
Posts: 78

Re: [SOLVED] steam and nvidia geforce gtx 960m

Don't run steam on the nvidia, but only the actually demanding games. You can do this by going to your game library, selecting the desired game, right click, select Properties, and Set Launch Options. There, %command% is translated into the game launcher, so to use the nvidia card you can enter:

optirun %command%

or

primusrun %command%

Source


To check the status of the 960m you can use

cat /proc/acpi/bbswitch

If everything is working as it should, bumblebee will keep the card off when nothing is using it, and switch it on when something calls for it via optirun/primusrun.

Also, don't forget to install lib32 versions of stuff, etc.


And most important: READ THE WIKI. This can't be said enough. The Arch Wiki is one of the best (if not THE best) GNU/Linux knowledge base there is, with a good search function and, with the exception of some very exotic topics, quite up to date information. And best of all: where applicable, it is tailored to your current distro! smile As a general workflow guideline: Search, read, try to understand, follow instructions, ask in the forums. This will lead to both faster problem solving and faster knowledge aquisition (which itself will lead to faster problem solving).

Edit: Added source for the steam commands from the wiki

Last edited by txus (2015-04-17 13:20:53)

Offline

#12 2015-04-17 20:45:04

grish
Member
Registered: 2015-04-17
Posts: 6

Re: [SOLVED] steam and nvidia geforce gtx 960m

Yep, setting the launch option to

primusrun %command%

works perfectly, and the card turns off when the games exits.

The wiki is really useful, I think the main issue I didn't try some of this originally was because I didn't think my card had the Optimus technology, so I disregarded a lot of the wiki. But those commands work, so I suppose I was wrong.

Thank a lot for the help everyone, I'm really glad this works now. Just goes to show that you have to keep working at something in Arch if you want it to work, even if you're not completely sure what you're doing (which is where the wiki comes in, and a lot of Googling).

Offline

Board footer

Powered by FluxBB