GTX 970M not available despite installing NVIDIA drivers

Hi, banging my head against the wall trying to get my 970M working. I’m using X11.

After having installed Tumbleweed some of the G06 drivers were installed (that’s probably because having enabled proprietary repo during install?).

YaST also had this repo added:

However, nvidia-drivers-G06 was not installed, so I did that. I have read the wiki tutorial. I’m using Secure Boot, and when rebooting I got the blue MOK screen mentioned in the wiki. I was not fast enough to press a key, so it disappeared. As the wiki also mentions:

In case you miss the timeout for certificate enrollment after first reboot, you can easily import again the certificate by running the following command:

For nvidia-driver-G0X (X >= 6):

mokutil --import /var/lib/nvidia-pubkeys/MOK-nvidia-driver-G0<X>-<driver_version>-<kernel_flavor>.der --root-pw

However, it does not mention how to get the <driver_version> or <kernel_flavor>. So after an entire day of trying to get my GPU working I went with — what’s mentioned in the wiki as “the last resort” — mokutil --disable-validation. Again I rebooted. After that:

inxi -G outputs Device-2: NVIDIA GM204M [GeForce GTX 960 OEM / 970M] driver: N/A. That is, driver not available.

NVIDIA Settings does not show the card and The Plasma Info Center does only shows Mesa Intel
(can’t upload more than one screen shot because I’m a new forum user).

So, what do I do now? Can’t seem to get this card working.

@mikae1 Hi, have a read of this recent thread https://forums.opensuse.org/t/cuda-on-notebook/169972 @johannesrs may be able to offer further advice :wink:

Thanks, would be happy if @johannesrs could chime in. :slightly_smiling_face: nvidia-settings outputs this:

(process:12890): Gtk-WARNING **: 20:45:03.619: Locale not supported by C library.
        Using the fallback 'C' locale.

(nvidia-settings:12890): dbind-WARNING **: 20:45:03.663: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

ERROR: NVIDIA driver is not loaded


(nvidia-settings:12890): GLib-GObject-CRITICAL **: 20:45:03.690: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

** (nvidia-settings:12890): CRITICAL **: 20:45:03.692: ctk_powermode_new: assertion '(ctrl_target != NULL) && (ctrl_target->h != NULL)' failed

ERROR: nvidia-settings could not find the registry key file or the X server is not accessible. This file should have been installed along with
       this driver at /usr/share/nvidia/nvidia-application-profiles-key-documentation. The application profiles will continue to work, but
       values cannot be prepopulated or validated, and will not be listed in the help text. Please see the README for possible values and
       descriptions.

The last paragraph seems interesting, even if I don’t understand much of it.

/sbin/lspci -nnk | grep -EA 3 "VGA|Display|3D" outputs:

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:191b] (rev 06)
        Subsystem: Acer Incorporated [ALI] Device [1025:1051]
        Kernel driver in use: i915
        Kernel modules: i915
--
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM204M [GeForce GTX 960 OEM / 970M] [10de:13d8] (rev a1)
        Subsystem: Acer Incorporated [ALI] Device [1025:1051]
        Kernel modules: nouveau, nvidia_drm, nvidia
02:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)

zypper se *nvidia*06* outsputs:

S  | Name                                        | Summary                                                                | Type
---+---------------------------------------------+------------------------------------------------------------------------+--------
   | kernel-firmware-nvidia-gsp-G06              | Kernel firmware file for open NVIDIA kernel module driver G06          | package
   | kernel-firmware-nvidia-gspx-G06             | Kernel firmware file for open NVIDIA kernel module driver G06          | package
i  | nvidia-compute-G06                          | NVIDIA driver for computing with GPGPU                                 | package
i  | nvidia-compute-G06-32bit                    | 32bit NVIDIA driver for computing with GPGPU                           | package
i  | nvidia-compute-utils-G06                    | NVIDIA driver tools for computing with GPGPU                           | package
i  | nvidia-driver-G06-kmp-default               | NVIDIA graphics driver kernel module for GeForce 700 series and newer  | package
i+ | nvidia-drivers-G06                          | Meta package for full installations (X, GL, etc.)                      | package
   | nvidia-drivers-minimal-G06                  | Meta package for compute only installations                            | package
i  | nvidia-gl-G06                               | NVIDIA OpenGL libraries for OpenGL acceleration                        | package
i  | nvidia-gl-G06-32bit                         | 32bit NVIDIA OpenGL libraries for OpenGL acceleration                  | package
   | nvidia-open-driver-G06-signed-default-devel | Devel Package to nvidia-open-driver-G06-signed                         | package
   | nvidia-open-driver-G06-signed-kmp-default   | NVIDIA open kernel module driver for GeForce RTX 2000 series and newer | package
i  | nvidia-utils-G06                            | NVIDIA driver tools                                                    | package
i  | nvidia-video-G06                            | NVIDIA graphics driver for GeForce 700 series and newer                | package
i  | nvidia-video-G06-32bit                      | 32bit NVIDIA graphics driver for GeForce 700 series and newer          | package

@mikae1 So it shows the nvidia card, just no driver in use. You could try suse-prime, else use offload?

Did you check nouveau was blacklisted?

What desktop environment, Wayland or X11?

Hi @malcolmlewis and @mikae1 .

Not sure I can provide more help than malcolm, but from my experience reported on the cuda on notebook thread, let just say that:

  1. I could not make the driver work from the repos for 15.5 (I succeeded in the previous version I was using, 15.2: yeah, I don’t upgrade that often), had to go the hard way;

  2. I think it is not your case, but just in case G06 seems to be a no go for cuda at the moment;

  3. Secureboot is a *****, I just succeeded with mok disabled: however, I did the installation with it activated and later disabled it;

  4. Once installed, I placed all possible tabooing wording in the initialization against nouveau, just to be sure… :wink:

Uncertain that at this point I can b of more help than this, and definitely if I can ever provide more help than Malcolm

Thanks! How/where should I do that?

No, I did not see anything about blacklisting Nouveau in the wiki tutorial. Did not know that this was a thing. What should I do?

Plasma, X11.

I ran sudo prime-select boot nvidia and got Default at system boot: nvidia. I rebooted. Still no card in the Nvidia Settings GUI. Below is the output from nvidia-settings. Says “ERROR: NVIDIA driver is not loaded”.

(process:4703): Gtk-WARNING **: 09:35:40.154: Locale not supported by C library.
        Using the fallback 'C' locale.

(nvidia-settings:4703): dbind-WARNING **: 09:35:40.197: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

ERROR: NVIDIA driver is not loaded


(nvidia-settings:4703): GLib-GObject-CRITICAL **: 09:35:40.222: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

** (nvidia-settings:4703): CRITICAL **: 09:35:40.224: ctk_powermode_new: assertion '(ctrl_target != NULL) && (ctrl_target->h != NULL)' failed

ERROR: nvidia-settings could not find the registry key file or the X server is not accessible. This file should have been installed along with
       this driver at /usr/share/nvidia/nvidia-application-profiles-key-documentation. The application profiles will continue to work, but
       values cannot be prepopulated or validated, and will not be listed in the help text. Please see the README for possible values and
       descriptions.

I just created /etc/modprobe.d/blacklist-nouveau.conf with these contents:

blacklist nouveau
options nouveau modeset=0

I then ran sudo dracut -f --regenerate-all and rebooted. Still I’m getting:

nvidia-settings

(process:4920): Gtk-WARNING **: 11:35:28.670: Locale not supported by C library.
        Using the fallback 'C' locale.

(nvidia-settings:4920): dbind-WARNING **: 11:35:28.716: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

ERROR: NVIDIA driver is not loaded


(nvidia-settings:4920): GLib-GObject-CRITICAL **: 11:35:28.741: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

** (nvidia-settings:4920): CRITICAL **: 11:35:28.743: ctk_powermode_new: assertion '(ctrl_target != NULL) && (ctrl_target->h != NULL)' failed

ERROR: nvidia-settings could not find the registry key file or the X server is not accessible. This file should have been installed along with
       this driver at /usr/share/nvidia/nvidia-application-profiles-key-documentation. The application profiles will continue to work, but
       values cannot be prepopulated or validated, and will not be listed in the help text. Please see the README for possible values and
       descriptions.

Judging from my experience and the long convoluted threads on this forum I’m starting to think that NVIDIA and Tumbleweed is a no-go. That’s a bit sad, because it’s currently the only distro I’ve really liked.

Not true. Tumbleweed user here with proprietary drivers for RTX 3080 Ti, GTX 1060 and GTX 550 Ti which works without problems.
Optimus users may have some troubles as this setup needs some attention to properly setup.

That’s great to hear but I won’t be buying NVIDIA as long as I’m on Linux.

Demonstrably, or else this thread wouldn’t exist. Also, there are no proper instructions to follow from what I can find. I’ll make sure to write some notes if I ever get this resolved. Right now I’m looking at new hardware. But I want to make sure I don’t have the same problem if I cash out for a new computer with Radeon or Arc GPU. Last resort: get a Mac Mini, run macOS and get on with life.

I now found this page: SDB:NVIDIA the hard way - openSUSE Wiki. It says:

The proprietary driver installer will blacklist Nouveau; therefore, you can usually skip this section, but it doesn’t hurt to double check it.

I did not have nvidia.conf in /etc/modprobe.d/, so it appears it wasn’t created by the driver installer. I deleted the blacklist-nouveau.conf I created earlier.

I created nvidia.conf and added the blacklist nouveau line to it. options nouveau.modeset=0 gives me:
libkmod: kmod_config_parse: /etc/modprobe.d/nvidia.conf line 2: ignoring bad line starting with 'options' when running sudo dracut -f, so I had to remove that line.

Restarted. Still I get ERROR: NVIDIA driver is not loaded when running nvidia-settings.

I tried adding:
nouveau.modeset=0 modprobe.blacklist=nouveau rd.driver.blacklist=nouveau nvidia-drm.modeset=1
to:
GRUB_CMDLINE_LINUX_DEFAULT= in /etc/default/grub

It now reads:
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent quiet security=apparmor mitigations=auto nosimplefb=1 nouveau.modeset=0 modprobe.blacklist=nouveau rd.driver.blacklist=nouveau nvidia-drm.modeset=1"

I rebooted. Still I get ERROR: NVIDIA driver is not loaded when running nvidia-settings.

@mikae1 The other option is to remove the rpms and suse-prime and look at the hardway?

https://en.opensuse.org/SDB:NVIDIA_the_hard_way

https://download.nvidia.com/XFree86/Linux-x86_64/545.29.02/

@mikae1 , first, take a long breath.

(From optimus user to optimus user), your issues seem to be: trying to use prime (been there, forget it), trying to make it work the easy way (tried on 15.5, no go, been there; 15.2 used to work, no idea about other versions), not cleaning up all of nvidia before attempting the hard way (that is kneeling to ask for trouble: wake up and get on your feet before they arrive), not creating a new system snapshot before doing all this (again, save yourself a lot of trouble: btw, if you have a system without so many specific softwares as mine, almost a pure install, I would even recommend that you simply reinstall to start from a “clean slate”).

Besides, nouveau.modeset=0 modprobe.blacklist=nouveau rd.driver.blacklist=nouveau nvidia-drm.modeset=1 is what I suggested you to do after you have all working and already disabled mok: lots to do before.

1 Like

@mikae1 good advice from @johannesrs :+1:

Now the newer drivers can be updated while the desktop is running, you still need to reboot, likewise the driver needs to be re-installed on a kernel update. Now in saying that once you have done it a few times, the process is quick…

Something like the following after a new kernel is installed;

systemctl set-default multi-user.target
systemctl reboot

Login on the tty as root user

sh /path/to/file/NVIDIA-Linux-x86_64-545.29.02.run --no-systemd --ui=none
systemctl set-default graphical.target
systemctl reboot

I normally grab the new run file and as my user for example chmod 0755 NVIDIA-Linux-x86_64-545.29.02.run then don’t need the sh command…

Thanks for the kind words and help @malcolmlewis and @johannesrs. It’s solved! What I did after this message was:

  1. sudo zypper rm nvidia-compute-G06 nvidia-compute-G06-32bit nvidia-compute-utils-G06 nvidia-driver-G06-kmp-default nvidia-drivers-G06 nvidia-gl-G06 nvidia-gl-G06-32bit nvidia-utils-G06 nvidia-video-G06 nvidia-video-G06-32bit
  2. Reboot
  3. sudo zypper in nvidia-compute-G06 nvidia-compute-G06-32bit nvidia-compute-utils-G06 nvidia-driver-G06-kmp-default nvidia-drivers-G06 nvidia-gl-G06 nvidia-gl-G06-32bit nvidia-utils-G06 nvidia-video-G06 nvidia-video-G06-32bit
  4. Reboot
  5. While rebooting the MOK screen showed up again. I followed the steps of the tutorial there (select “Enroll MOK”, then “Continue”, then “Yes”. Use your root password (US keyboard layout!) when prompted for a password.)

When the system had booted I started nvidia-settings and got no worrying errors.

nvidia-settings

(process:11000): Gtk-WARNING **: 15:13:04.411: Locale not supported by C library.
        Using the fallback 'C' locale.

(nvidia-settings:11000): dbind-WARNING **: 15:13:04.455: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

(nvidia-settings:11000): GLib-GObject-CRITICAL **: 15:13:04.486: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

Whether it was the MOK or the reinstallation of every nvidia package I had, I do not know. Here’s what’s in /etc/modprobe.d/nvidia.conf(which I created):

blacklist nouveau

Run sudo dracut -f after editing.

In /etc/default/grub I have:

GRUB_CMDLINE_LINUX_DEFAULT="splash=silent quiet security=apparmor mitigations=auto nouveau.modeset=0 modprobe.blacklist=nouveau rd.driver.blacklist=nouveau nvidia-drm.modeset=1 nosimplefb=1"

Run grub2-mkconfig -o /boot/grub2/grub.cfg after editing.

I would do these edits to /etc/default/grub and /etc/modprobe.d/nvidia.conf before installing all the NVIDIA packages.

After all this I ran sudo flatpak upgrade and the Flatpak NVIDIA things got automatically installed. When I opened darktable and Dolphin Emulator the 970M was accessible.

2 Likes