[SOLVED] [14.2] Only certain programs broke after nVIDIA proprietary driver switch
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
[14.2] Only certain programs broke after nVIDIA proprietary driver switch
Hi, I recently switched to the nVIDIA proprietary drivers in hopes that it would improve my machine's gaming performance. I followed the instructions in the Slackware docs, booted into my DE, and all that jazz.
Now some specific programs that deal with video processing will not work. For example, games installed will not run at all. The emulators I use (PCSX2, Dolphin, etc) will all start but crash or give an error when they load games. Mplayer will attempt to play a video but no video rendering screen appears, only audio plays. Etc. VLC seems to work fine for no particular reason.
...but crash or give an error when they load games.
Not sure what to do from here.
The error might give us a good idea on what's going on. Have you also checked the output of dmesg and your /var/log/Xorg.0.log?
It'd also be beneficial to let us know what card, driver version, source of driver (run the binary, using SlackBuild, etc). Also, are you 32bit or 64bit, and if it is the latter, did you build the multilib driver?
In my decades of experience with nVidia and the proprietary drivers I have never experienced anything but improvement, sometimes massive improvement, unless the driver did not match the graphics card. Below is a link to the Search Drivers page for GeForce models. If yours isn't a GeForce model use the "All drivers" page instead but verify that you have the proper match between model and driver
The error might give us a good idea on what's going on. Have you also checked the output of dmesg and your /var/log/Xorg.0.log?
It'd also be beneficial to let us know what card, driver version, source of driver (run the binary, using SlackBuild, etc). Also, are you 32bit or 64bit, and if it is the latter, did you build the multilib driver?
Sorry for not listing the specs! I am using 64 bit, Slackware version 14.2, kernel 4.4.115. I do not have multilib on here.
My card is a GeForce GTX 650 Ti. I have driver version 384.90 installed from the SBo repos, following the guide on Slackware Docs (installing nvidia-driver, nvidia-kernel, and libvdpau).
I do not have any error messages in dmesg. /var/log/Xorg.0.log says
so I assume that the correct driver was loaded. But I do not know how to interpret the rest of this log, though there are some errors about various modules failing to load. I've put it in a pastebin here: https://pastebin.com/pC5dA9pr
Quote:
Originally Posted by enorbet
In my decades of experience with nVidia and the proprietary drivers I have never experienced anything but improvement, sometimes massive improvement, unless the driver did not match the graphics card. Below is a link to the Search Drivers page for GeForce models. If yours isn't a GeForce model use the "All drivers" page instead but verify that you have the proper match between model and driver
Then perhaps report on the nvidia-installer.log and/or /var/log/Xorg.0.log and/or $HOME/.xsession-errors. More data==Better
My card is on the list, yeah. I don't seem to have an .xsession-errors file anywhere on here. Good idea on the nvidia-installer.log thing. There's an error here which says:
Code:
WARNING: You specified the '--no-kernel-module' command line option, nvidia-installer will not install a kernel module as part of this driver installation, and it will not remove existing NVIDIA kernel modules not part of an earlier NVIDIA driver installation. Please ensure that an NVIDIA kernel module matching this driver version is installed seperately.
..which sounds suspicious because I installed nvidia-kernel from SBo. I've pasted the full log here also: https://pastebin.com/6MeePm1M
Well, based on your output in the Xorg log, it seems it isn't loading the nvidia driver properly. Instead, it is using an old open source nv driver, which was replaced years ago by nouveau.
Code:
[ 60.257] (==) Matched nouveau as autoconfigured driver 0
[ 60.257] (==) Matched nv as autoconfigured driver 1
[ 60.257] (==) Matched nouveau as autoconfigured driver 2
[ 60.257] (==) Matched nv as autoconfigured driver 3
[ 60.257] (==) Matched modesetting as autoconfigured driver 4
[ 60.257] (==) Matched fbdev as autoconfigured driver 5
[ 60.257] (==) Matched vesa as autoconfigured driver 6
[ 60.257] (==) Assigned the driver to the xf86ConfigLayout
[ 60.257] (II) LoadModule: "nouveau"
[ 60.294] (WW) Warning, couldn't open module nouveau
[ 60.294] (II) UnloadModule: "nouveau"
[ 60.295] (II) Unloading nouveau
[ 60.295] (EE) Failed to load module "nouveau" (module does not exist, 0)
[ 60.295] (II) LoadModule: "nv"
[ 60.295] (II) Loading /usr/lib64/xorg/modules/drivers/nv_drv.so
[ 60.306] (II) Module nv: vendor="X.Org Foundation"
[ 60.306] compiled for 1.18.0, module version = 2.1.20
[ 60.306] Module class: X.Org Video Driver
[ 60.306] ABI class: X.Org Video Driver, version 20.0
Basically, this is saying that your card is recognized to be supported by the nouveau and nv drivers, but it can't find the nouveau (likely because it is blacklisted, but possibly because it is removed), so it then moved on to the nv driver.
Quick guess is that the nvidia driver isn't installed properly, but I don't know much about that process (been years since I've had an Nvidia card). Hopefully enorbet or some other forum members can give some insight on why it isn't using the nvidia driver...
Its not loading nouveau and my guess is he did not recompile either the kernel or mesa without nouveau. If he removed just xf86-video-nouveau it would of just fallen back to modesetting which is included with xorg-server now. So my guess is same as bassmadrigal's, nouveau is blacklisted and nvidia was not properly installed.
From the Xorg log, the nvidia module is not loaded. It looks like nouveau is blacklisted (or missing, so check as above suggested. There is a package in /extra on the install DVD to blacklist nouveau as is required). Module nv gets loaded instead an that has limited functionality.
You MUST follow this sequence for nvidia from SBo (libvdpau is already included in 14.2 so you can ignore it):
Install nvidia-kernel as full root (su -)
Install nvidia-driver as full root (su -) - you can ignore the warning messages about the kernel
remove or modify any xorg device conf in /etc/X11/xorg.conf.d
REBOOT! DO IT NOW!
Check dmesg and lsmod to make sure 'nvidia-*' modules are loaded
Note that nvidia-kernel installs a 10-nvidia.conf in /usr/share/X11/xorg.conf.d which is used only if /etc/X11/xorg.conf.d is empty. On some kernels, if nvidia-drm is not loaded soon enough, you will need to add in /etc/X11/xorg.conf.d this example from my system:
I can't comment more since I prefer using nvidia's installer from runlevel3. I very much appreciate Slackbuilds but I see no need to add an additional layer of variables on something as fundamental as graphics drivers.
enorbet,
The NVIDIA-*.run installs kernel modules and drivers "in-place". I used that method for years until I took over the SBo scripts. For some this is not the "Slackware way" as well as some of us need relocatable packages (build once, install many times), or if you need to add nvidia cleanly to something like liveslak.
I understand, kingbeowulf, and have no problem whatsoever with those who chose otherwise. In fact I salute you and others who bother to provide such an important service. It's just not for me when regarding nvidia drivers or most things kernel related on a fundamental level. It works exceptionally well, takes only a few minutes and has done that for me since Slackware v9, iirc, or certainly by v10, was released.
I've had issues with the symlinks to the GLX drivers when upgrading the nvidia package using the slackbuild. Go see what /usr/lib64/xorg/modules/extensions/libglx.so points to. If it doesn't point to /usr/lib64/xorg/modules/extensions/libglx.so.384.90 (or the one that matches what you've installed), then that's probably your issue.
Frankly, I've stopped using the slackbuild and the proprietary drivers due to
this issue cropping up repeatedly and
the realization that the open source drivers are good enough for my use cases.
My use cases aren't the OP's use cases, of course.
FWIW I have never experienced the issue described by Richard Cranium. I have always installed with nvidia's own .run file and that symlink as well as everything else installs without issue. Currently I'm using the 390.25 full release for my GTX 1070 Ti but before that even the beta version worked perfectly. although oddly the full release wouldn't complete the install, even though the beta did, on my old 3.14.12 kernel but compiling the stable 3.15.0 solved that.
Richard and enorbet:
Nvidia is a bit hostile to providing support for packagers with scant documentation of options. I can understand the symlink frustration (I fixed the libglx one ages ago). Its been an evolving process to keep up with them to get a package that can install and then uninstall cleanly. On every update I find another odd quirk that needs fixing. And don't even get me started on multilib - I'll lose what little hair I have left...
The NVIDIA-*.run works fine with Slackware, so for those who don't need relocatable packages, or don't want to put up with the occasional bug I introduce, it doesn't hurt my feelings for you not to use it. I do find my SBo version easier in one respect: When we have "small" kernel patches in 14.2, then all you need to do is re-run nvidia-kernel without trying to figure out what CLI options to use for their .run script to not (re)install the entire driver package.
As for the OP, his Xorg.0.log clearly shows that nvidia.ko is not installed or loaded. It doesn't matter which way you install, no kernel module means no nvidia driver.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.