You are not logged in.
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
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
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
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
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
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
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
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
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
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
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%
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! 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
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