Can't get any graphics drivers to load

I’m brand new to openSUSE; I just installed it yesterday. I’ve been troubleshooting for hours but I can’t get any graphics drivers to run whatsoever. I’m stuck on the generic driver, which really is not a great experience.

For context, I’m using a Lenovo Slim Pro 7 laptop that has Nvidia discrete graphics and AMD integrated graphics. Even though I have drivers for both installed, I cannot get either of them to actually load. I followed the installation steps at SDB:NVIDIA drivers - openSUSE Wiki, including the Secure Boot steps.

Here is what inxi -G outputs:

Graphics:
  Device-1: NVIDIA GA107BM / GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU]
    driver: N/A
  Device-2: Advanced Micro Devices [AMD/ATI] Rembrandt [Radeon 680M]
    driver: N/A
  Device-3: Chicony Integrated Camera (1920x1080) driver: uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.15 with: Xwayland v: 24.1.8 driver: X:
    loaded: modesetting unloaded: vesa gpu: N/A resolution: 800x600~60Hz
  API: EGL v: 1.5 drivers: swrast platforms: x11,surfaceless,device
  API: OpenGL v: 4.5 vendor: mesa v: 25.2.2 renderer: llvmpipe (LLVM 20.1.8
    256 bits)
  API: Vulkan v: 1.4.321 drivers: llvmpipe surfaces: N/A
  Info: Tools: api: eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor wl: wayland-info
    x11: xdpyinfo, xprop, xrandr

I did use nomodeset when running the openSUSE installer, which I’m thinking might have messed something up, but I really didn’t have a choice — the installer wouldn’t load otherwise.

How to I get graphics drivers to load at all?

Post:
zypper se -s repos
zypper se -si nvidia
zypper lr -d

And did you remove the nomodeset option from the boot command line after the first reboot? If not so, start YasT2-Bootloader, go to the Kernel Parameters tab, cancel “nomodeset” in the first line, hit “OK”.

inxi -GSaz is usually necessary for a complete graphics configuration picture, including kernel command line parameters.

Thanks for reminding me of this! It turns out this was the problem. I thought I had looked to see if nomodeset was still specified, but apparently I missed it the first time around. I’m at least able to load the AMD drivers now, though I’m still having trouble with Nvidia.

I’ve gotten the AMD drivers to load now, but still can’t seem to get the Nvidia drivers to load. Switcheroo does not show any Nvidia card, and lsmod | grep nvidia returns nothing.

I did notice some compilation errors when installing the Nvidia drivers, but I’m not sure how to fix them.

nvidia/nv-acpi.c:26:10: fatal error: os-interface.h: No such file or directory
   26 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
  CC [M]  nvidia/nv-mmap.o
nvidia/nv-cray.c:26:10: fatal error: os-interface.h: No such file or directory
   26 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-acpi.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-cray.o] Error 1
  CC [M]  nvidia/nv-p2p.o
nvidia/nv-dma.c:26:10: fatal error: os-interface.h: No such file or directory
   26 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-dma.o] Error 1
nvidia/nv-mmap.c:26:10: fatal error: os-interface.h: No such file or directory
   26 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-mmap.o] Error 1
nvidia/nv-p2p.c:26:10: fatal error: os-interface.h: No such file or directory
   26 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-p2p.o] Error 1
nvidia/nv-nano-timer.c:30:10: fatal error: os-interface.h: No such file or directory
   30 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-nano-timer.o] Error 1
nvidia/nv.c:30:10: fatal error: nv-firmware.h: No such file or directory
   30 | #include "nv-firmware.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv.o] Error 1
nvidia/nv-dmabuf.c:24:10: fatal error: nv-dmabuf.h: No such file or directory
   24 | #include "nv-dmabuf.h"
      |          ^~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-dmabuf.o] Error 1
nvidia/nv-pci.c:25:10: fatal error: nv-pci-types.h: No such file or directory
   25 | #include "nv-pci-types.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-pci.o] Error 1
nvidia/nv-i2c.c:28:10: fatal error: os-interface.h: No such file or directory
   28 | #include "os-interface.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [/usr/src/linux-6.16.5-1/scripts/Makefile.build:288: nvidia/nv-i2c.o] Error 1
make[3]: *** [/usr/src/linux-6.16.5-1/Makefile:2026: .] Error 2
make[2]: *** [/usr/src/linux-6.16.5-1/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/kernel-modules/nvidia-550.144.03-default'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-6.16.5-1'
make: *** [Makefile:115: modules] Error 2
/
install: cannot stat '/usr/src/kernel-modules/nvidia-550.144.03-default/nvidia*.ko': No such file or directory
/usr/src/kernel-modules/nvidia-550.144.03-default /
rm -f -r conftest
make[1]: Entering directory '/usr/src/linux-6.16.5-1'
make[2]: Entering directory '/usr/src/kernel-modules/nvidia-550.144.03-default'
  CLEAN   .
  CLEAN   Module.symvers
make[2]: Leaving directory '/usr/src/kernel-modules/nvidia-550.144.03-default'
make[1]: Leaving directory '/usr/src/linux-6.16.5-1'
/
.+........+.+........+............+.+.....+....+.....+......+..........+...+...........+.+...+.........+++++++++++++++++++++++++++++++++++++++*............+.....+.......+++++++++++++++++++++++++++++++++++++++*.+.....+.+...+...........+.+...+.....+..................+...+.+......+.....+.......+...........................+.....+......+...+...............+.+......+...+......+.....+.+..+.+............+..+.......+...+..+....+.....+......+........................+.+........+.+......+...+............+......+........+............+...+....+..+.+...+...........+.+..+................+......+...+......+...........+...+.+...........+......+....+...+...+..++++++
...+....+......+...+......+..+....+........+++++++++++++++++++++++++++++++++++++++*..+......+...+.+..+...+.+++++++++++++++++++++++++++++++++++++++*............+...+...+..+...............+...+.+...+......+.....+.+........+.......+......+...+..+...+...............+....+....................................+......+......+.....+...+......+....+...........+...+.+..+....+...+.....+...+....+.........+..+..........+...+..+.............+..+...+.......+...+.........+..+....+...........+.+...+.....+......+...+.......+......+.....+...+............+.......+.....+.+.....+.+......+..+......+.+......+..+.+............+...+.....+.+...+.................+.............+............+...+..+...+...+....+.........+..+..........+..............+...+.......+...+..+...+...+..........+.....+........................+...+.+.....+.......+...+............+...+.....+......+....+.....+....+...........+.+.....+....+...........+.+..+.......+...+.....+...+.......+........+...+....+.....+.......+........+......+.+........+.............+.................+.+..+.........................+...+......+......+...+............+...+.....+.+........+...+...+...............+....+..+...+...+...............+....+.........+....................+.+.....+....+.....+....+.................+....+..+...+.........+...+............+...+...+............+....+...+..+.+...+...........+...+.......+...+...............+..+.+...+...........+.+.................+.+........................+..+...+.+......++++++
-----
At main.c:302:
- SSL error:FFFFFFFF80000002:system library::No such file or directory: crypto/bio/bss_file.c:67
- SSL error:10000080:BIO routines::no such file: crypto/bio/bss_file.c:75
sign-file: /lib/modules/6.16.5-1-default/updates/nvidia*.ko
update-alternatives: using /usr/lib/nvidia/alternate-install-present-default to provide /usr/lib/nvidia/alternate-install-present (alternate-install-present) in auto mode
Modprobe blacklist files have been created at /usr/lib/modprobe.d to prevent Nouveau from loading. This can be reverted by deleting /usr/lib/modprobe.d/nvidia-*.conf.
*** Reboot your computer and verify that the NVIDIA graphics driver can be loaded. ***
warning: %triggerin(nvidia-driver-G06-kmp-default-550.144.03_k6.12.9_1-30.2.x86_64) scriptlet failed, exit status 1

zypper se -s repos:

Loading repository data...
Reading installed packages...

S  | Name                              | Type    | Version              | Arch   | Repository
---+-----------------------------------+---------+----------------------+--------+-----------
   | cockpit-repos                     | package | 4.3-1.1              | noarch | repo-oss
   | felix-bundlerepository            | package | 2.0.10-2.5           | noarch | repo-oss
   | felix-bundlerepository-javadoc    | package | 2.0.10-2.5           | noarch | repo-oss
i  | girepository-1_0                  | package | 1.84.0-2.1           | x86_64 | repo-oss
i  | libgirepository-1_0-1             | package | 1.84.0-2.1           | x86_64 | repo-oss
   | libgirepository-1_0-1-32bit       | package | 1.84.0-2.1           | x86_64 | repo-oss
i  | libgirepository-2_0-0             | package | 2.84.4-1.1           | x86_64 | repo-oss
i  | librepository                     | package | 1.1.6-2.5            | noarch | repo-oss
   | librepository-javadoc             | package | 1.1.6-2.5            | noarch | repo-oss
   | live-add-yast-repos               | package | 1.0-6.10             | x86_64 | repo-oss
   | openSUSE-repos-Leap               | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | openSUSE-repos-Leap-NVIDIA        | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
i  | openSUSE-repos-MicroOS            | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
i  | openSUSE-repos-MicroOS-NVIDIA     | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | openSUSE-repos-Slowroll           | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | openSUSE-repos-Slowroll-NVIDIA    | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | openSUSE-repos-Tumbleweed         | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | openSUSE-repos-Tumbleweed-NVIDIA  | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | perl-Git-Repository               | package | 1.325-3.9            | noarch | repo-oss
   | perl-Git-Repository-Plugin-Log    | package | 1.314-1.23           | noarch | repo-oss
   | python311-testrepository          | package | 0.0.21-2.1           | noarch | repo-oss
   | python312-testrepository          | package | 0.0.21-2.1           | noarch | repo-oss
   | python313-testrepository          | package | 0.0.21-2.1           | noarch | repo-oss
   | reproducible-faketools-futurepost | package | 0.5.5+0-1.2          | noarch | repo-oss
   | rpm-repos-openSUSE-Tumbleweed     | package | 1699-11.1            | x86_64 | repo-oss
   | typelib-1_0-GIRepository-3_0      | package | 2.84.4-1.1           | x86_64 | repo-oss

zypper se -si nvidia:

Loading repository data...
Reading installed packages...

S  | Name                          | Type    | Version                   | Arch   | Repository
---+-------------------------------+---------+---------------------------+--------+--------------
i  | kernel-firmware-nvidia        | package | 20250516-4.1              | noarch | repo-oss
i  | libnvidia-egl-wayland1        | package | 1.1.20-51.1               | x86_64 | repo-non-free
i  | nvidia-driver-G06-kmp-default | package | 550.144.03_k6.12.9_1-30.2 | x86_64 | repo-non-free
i  | nvidia-gl-G06                 | package | 550.144.03-30.1           | x86_64 | repo-non-free
i  | nvidia-gl-G06-32bit           | package | 550.144.03-30.1           | x86_64 | repo-non-free
i  | openSUSE-repos-MicroOS-NVIDIA | package | 20250728.9adc675-1.1      | x86_64 | repo-oss

zypper lr -d:

# | Alias                      | Name              | Enabled | GPG Check | Refresh | Keep | Priority | Type   | URI                                                      | Service
--+----------------------------+-------------------+---------+-----------+---------+------+----------+--------+----------------------------------------------------------+---------
1 | NVIDIA:repo-non-free       | repo-non-free     | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | https://download.nvidia.com/opensuse/tumbleweed          | NVIDIA
2 | openSUSE:repo-non-oss      | repo-non-oss      | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/non-oss          | openSUSE
3 | openSUSE:repo-openh264     | repo-openh264     | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed | openSUSE
4 | openSUSE:repo-oss          | repo-oss          | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/oss              | openSUSE
5 | openSUSE:repo-oss-debug    | repo-oss-debug    | No      | ----      | ----    | -    |   99     | N/A    | http://cdn.opensuse.org/debug/tumbleweed/repo/oss        | openSUSE
6 | openSUSE:repo-oss-source   | repo-oss-source   | No      | ----      | ----    | -    |   99     | N/A    | http://cdn.opensuse.org/source/tumbleweed/repo/oss       | openSUSE
7 | openSUSE:update-tumbleweed | update-tumbleweed | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://cdn.opensuse.org/update/tumbleweed                | openSUSE

You should not have those, but these:

   | openSUSE-repos-Tumbleweed         | package | 20250728.9adc675-1.1 | x86_64 | repo-oss
   | openSUSE-repos-Tumbleweed-NVIDIA  | package | 20250728.9adc675-1.1 | x86_64 | repo-oss

And install the NVIDIA package for your kernel i.e. 6.15.1 . The one you have now

i  | nvidia-driver-G06-kmp-default | package | 550.144.03_k6.12.9_1-30.2 | x86_64 | repo-non-free

is not for your kernel (see k6.12.9 !!!)

@saucylegs
It is the completely wrong driver version, and incomplete.

sudo zypper rm *G06*
sudo zypper in nvidia-driver-G06-kmp-default nvidia-gl-G06 nvidia-video-G06 nvidia-compute-G06

Thanks everyone! It’s infuriating that zypper install-new-recommends gave the wrong versions in the first place, but I was able to get the Nvidia drivers working by uninstalling them then manually specifying the packages to reinstall.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.