Hello! I am running Tumbleweed on a desktop with an RTX 4070 and I am have tried to run sudo zypper dup
3 times now over the last 2 months and each time it has messed up my nvidia graphics drivers somehow causing me to revert to the snapshot taken just before the zypper dup. I thought at the time that there was just some issue that would be resolved which is why I kept reverting but at this point I just need to bite the bullet and figure out how to fix it.
I have attempted to uninstall and reinstall the drivers several times using the command.
sudo zypper remove \*nvidia\* && sudo zypper install x11-video-nvidiaG06
The only notable thing that this seems to do is fix my resolution from like 480p to 1080p, but only for the next reboot. However even with the resolution change it seems that the nvidia gpu is not being used at all.
sudo prime-select get-current
tells me that there is “no driver configured”
The command xrandr --listproviders
prints
Providers: number : 1 Provider 0: id: 0x40; cap: 0x2 (Sink Output); crtcs: 1; outputs: 1; associated providers: 0; name: modesetting output None-1
Also task manager (or whatever) can’t detect the gpu I guess?
screenshot
I’m still pretty new to linux so any and all guidance is greatly appreciated. Thanks!
I’m wondering if it has something to do with the priorities of your repositories. What’s the output of
zypper repos --details
(orzypper lr -d
for short) on your system?Thanks for your help with this!
zypper lr -d
spoiler
# | 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 | http://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 8 | packman | Packman | Yes | (r ) Yes | Yes | - | 70 | rpm-md | https://ftp.halifax.rwth-aachen.de/packman/suse/openSUSE_Tumbleweed/ |
edit to add: I’m not sure how readable the formatting will be but I can tell you that all of them have 99 priority except for packman which has 70.
The repo configuration looks sane to me (however, it’s bin a while since I last combined Packman repo with NVidia). Also please give the output of
lspci
, which is about the most low-level way to see whether your system sees the graphics card.output of lspci
00:00.0 Host bridge: Intel Corporation Raptor Lake-S Host Bridge/DRAM Controller (rev 01) 00:01.0 PCI bridge: Intel Corporation Raptor Lake PCI Express 5.0 Graphics Port (PEG010) (rev 01) 00:06.0 PCI bridge: Intel Corporation Raptor Lake PCIe 4.0 Graphics Port (rev 01) 00:08.0 System peripheral: Intel Corporation GNA Scoring Accelerator module (rev 01) 00:0a.0 Signal processing controller: Intel Corporation Raptor Lake Crashlog and Telemetry (rev 01) 00:14.0 USB controller: Intel Corporation Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller (rev 11) 00:14.2 RAM memory: Intel Corporation Raptor Lake-S PCH Shared SRAM (rev 11) 00:14.3 Network controller: Intel Corporation Raptor Lake-S PCH CNVi WiFi (rev 11) 00:16.0 Communication controller: Intel Corporation Raptor Lake CSME HECI #1 (rev 11) 00:17.0 SATA controller: Intel Corporation Raptor Lake SATA AHCI Controller (rev 11) 00:1c.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #1 (rev 11) 00:1c.3 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #4 (rev 11) 00:1f.0 ISA bridge: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 11) 00:1f.3 Audio device: Intel Corporation Raptor Lake High Definition Audio Controller (rev 11) 00:1f.4 SMBus: Intel Corporation Raptor Lake-S PCH SMBus Controller (rev 11) 00:1f.5 Serial bus controller: Intel Corporation Raptor Lake SPI (flash) Controller (rev 11) 01:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070] (rev a1) 02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9C1a (DRAM-less) 03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03) 04:00.0 SATA controller: ASMedia Technology Inc. ASM1061/ASM1062 Serial ATA Controller (rev 02)
Looks normal; the graphics card is being detected.
How about about
sudo journalctl -xe | grep nvidia
and specificallysudo journalctl -xe | grep nvidia-persistenced
?I remember my NVIDIA drivers causing troubles because of secure boot:
Kernels in Leap and Tumbleweed will, by default, refuse to load any unsigned kernel modules on machines with secure boot enabled.
https://en.opensuse.org/SDB:NVIDIA_drivers#Secureboot
During every reboot right after an upgrade involving NVIDIA drivers, one should watch the screen in case a prompt for the enrolment of new MOK keys appears. If one misses this prompt, one has to do the enrolment by hand, see Ctrl+F “miss the timeout for certificate enrollment after first reboot” in the linked section. With your card model, this means you’d have to run
mokutil --import /usr/share/nvidia-pubkeys/MOK-nvidia-driver-G06-<driver_version>-<kernel_flavor>.der --root-pw
as root. In order to find the precise filename to use here, the easiest way is to first enter just the part until and including “MOK-nivdia-driver-G0”, and then hit
Tab
twice to see what suggestions you get: the relevant file is then in all likelihood the one with the highest version numbers.I’d just like to reiterate that I appreciate your help. Neither grep command printed anything and the mokutil command gave an error (also it only had one option when I hit tab twice as you instructed, thank you for the detailed instructions though)
spoiler
Now that you mention it I do recall the computer booting into some weird screen before grub but I just let it time out because I didn’t know what it was. Sometimes when I uninstall and reinstall the drivers it does that screen again (shim?) but of course now that I want it to show up I can’t reproduce it lol.
Yeah, the weird confusing screen at boot that’s easy to miss and difficult to bring back must have been the one about key enrolment. Memories lol. Sadly I’m not fluent in dealing with secure boot. So when you’ve exhausted what the SUSE wiki suggests, try googling the error messages (‘Failed to access kernel trusted keyring: Required key not available’ and ‘Failed to get root password hash’) and play around with mokutil to see if you can solve your problem. Or ask in the OpenSUSE IRC channel, e.g. going to the Libera Web client and entering the channel name opensuse (ideally link to this thread when asking there).
Thanks again for your help! I tried rolling back again and redoing it a 4th time to get the mokutility screen to pull up again but it didn’t 🙃 So I rolled back yet again because I’m tired of fucking with it today. I will definitely be heading to that IRC channel when I go to reattempt next time though.