First, I want to thank deano_ferrari months back for pointing out a detail I and other missed that allowed the supergfxctl plasmoid to finally work for me in the first place. (I don’t really know hot @'ing someone works, and if its as annoying as @'ing someone on discord).
This has worked for many months, though recently is has partially broken, and likely my fault. During one of the updates these past two weeks, an Nvidia update was getting file conflict errors trying to install G04 for some reason, replacing my G06 drivers (below is the errors I got in Myrlyn):
Generally forgetting about the types of Nvidia drivers out there, and getting annoyed at the rest of the non-Nvidia updates failing due to this, I just used the terminal to update and select deinstallation/replace options whenever the file conflicts came up. Actually my computer froze up near the end of the update process, and I hard shut down after seeing nothing will get my computer functioning again that session. My system worked just as normal in spite of this, though supergfxctl seemed to break, specifically with Hybrid mode no longer functioning as intended.
Ignore the other options below Integrated and Hybrid, they’re unsupported.
When switching to Hybrid mode, the dGPU (Nvidia) just stays on all the time without ever turning off/winding down. Some of the options for switching between Integrated or Hybrid are either grayed out or visually do not make sense as shown from the above screenshots (Like the plasmoid saying I am on Integrated while I switched to Hybrid and the dGPU is still active).
For now my laptop has not seen any problems these past few days, but it would be nice to figure out what is happening and how it can be resolved.
As a slightly unrelated note, this has happened to me before this glitch occurred. When I put my laptop to sleep while its on Integrated mode, turning it back on makes the dGPU always active despite the mode I am in.
Here is what the output looks like:
zypper se -i nvidia
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
---+--------------------------------+-----------------------------------------------------------------------+--------
i | kernel-firmware-nvidia | Kernel firmware files for Nvidia Tegra and graphics drivers | package
i | libnvidia-egl-gbm1 | The GBM EGL external platform library | package
i | libnvidia-egl-gbm1-32bit | The GBM EGL external platform library | package
i | libnvidia-egl-wayland1 | The EGLStream-based Wayland external platform | package
i | libnvidia-egl-wayland1-32bit | The EGLStream-based Wayland external platform | package
i | libnvidia-egl-x111 | NVIDIA XLib and XCB EGL Platform Library | package
i | libnvidia-egl-x111-32bit | NVIDIA XLib and XCB EGL Platform Library | package
i | libnvidia-gpucomp | NVIDIA library for shader compilation (nvgpucomp) | package
i | libnvidia-gpucomp-32bit | NVIDIA library for shader compilation (nvgpucomp) | package
i | nvidia-common-G06 | Common files for the NVIDIA driver packages | 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-gl-G06 | NVIDIA OpenGL libraries for OpenGL acceleration | package
i | nvidia-gl-G06-32bit | 32bit NVIDIA OpenGL libraries for OpenGL acceleration | package
i | nvidia-libXNVCtrl | Library providing the NV-CONTROL API | package
i+ | nvidia-modprobe | NVIDIA kernel module loader | package
i | nvidia-persistenced | A daemon to maintain persistent software state in the NVIDIA driver | package
i | nvidia-userspace-meta-G06 | Meta package to autoselect NVIDIA userspace packages | 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
i+ | openSUSE-repos-Slowroll-NVIDIA | openSUSE NVIDIA repository definitions | package
I forgot to mention this, but I did go back from the G04 drivers installed in that messy update back to the G06 drivers I had before this mess. Or at least, tried to reinstall all the G06 drivers I had previously. Once again, my laptop seems fine with the change, with only supergfxctl glitching out from it.
Another thought: You could see if ~/.config/supergfxctl exists, and perhaps remove any stale config there… rm -rf ~/.config/supergfxctl
Remove the system-wide state… sudo rm -rf /var/lib/supergfxctl
then restart the user service… systemctl --user restart supergfxctl
Any different?
I don’t have NVIDIA hardware, and not sure how this would come about, but just to be sure try rebuilding the RPM database with sudo rpm --rebuilddb
then
Changing the GPU mode, whether I use the plasmoid or the terminal, does not seem to do any further changes outside of what I outlined in the original post. On integrated, I got the following outputs for supergfxctl status & nvidia-smi:
supergfxctl -S
off
nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
supergfxctl --help
Optional arguments:
-h, --help print help message
-m, --mode Set graphics mode
-v, --version Get supergfxd version
-g, --get Get the current mode
-s, --supported Get the supported modes
-V, --vendor Get the dGPU vendor name
-S, --status Get the current power status
-p, --pend-action Get the pending user action if any
-P, --pend-mode Get the pending mode change if any
When changing to hybrid…
supergfxctl --mode Hybrid
Graphics mode changed to Hybrid. Required user action is: Logout required to complete mode change
After logging out… (side note: sometimes when doing this, it kicks me to the session/desktop environment launcher/changer, so I have to re-login. This is another one of those bugs that have existed before this issue, but are too annoying nor important enough I think to get a separate post? But idk where else to talk about them.)
supergfxctl -S
active
nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
None of the folders proposed here exist on my system.
Here is the output for all those commands:
sudo rpm --rebuilddb
[sudo] password for root:
sudo zypper ref
Repository 'update-slowroll' is up to date.
Repository 'repo-non-free' is up to date.
Repository 'asusctl (openSUSE_Tumbleweed)' is up to date.
Repository 'repo-non-oss' is up to date.
Repository 'repo-openh264' is up to date.
Repository 'repo-oss' is up to date.
Repository 'Security tools (openSUSE_Tumbleweed)' is up to date.
Repository 'snappy' is up to date.
All repositories have been refreshed.
sudo zypper clean --all
All repositories have been cleaned up.
sudo zypper dup
Refreshing service 'NVIDIA'.
Refreshing service 'openSUSE'.
Retrieving repository 'repo-non-free' metadata ................................................................................[done]
Building repository 'repo-non-free' cache .....................................................................................[done]
Looking for gpg keys in repository asusctl (openSUSE_Tumbleweed).
gpgkey=https://download.opensuse.org/repositories/home:/RN:/asusctl/openSUSE_Tumbleweed/repodata/repomd.xml.key
Building repository 'asusctl (openSUSE_Tumbleweed)' cache .....................................................................[done]
Looking for gpg keys in repository repo-non-oss.
gpgkey=http://download.opensuse.org/slowroll/repo/non-oss/repodata/repomd.xml.key
Retrieving repository 'repo-non-oss' metadata .................................................................................[done]
Building repository 'repo-non-oss' cache ......................................................................................[done]
Retrieving repository 'repo-openh264' metadata ................................................................................[done]
Building repository 'repo-openh264' cache .....................................................................................[done]
Looking for gpg keys in repository repo-oss.
gpgkey=http://download.opensuse.org/slowroll/repo/oss/repodata/repomd.xml.key
Retrieving repository 'repo-oss' metadata .....................................................................................[done]
Building repository 'repo-oss' cache ..........................................................................................[done]
Looking for gpg keys in repository update-slowroll.
gpgkey=http://download.opensuse.org/update/slowroll/repo/oss/repodata/repomd.xml.key
Retrieving repository 'update-slowroll' metadata ..............................................................................[done]
Building repository 'update-slowroll' cache ...................................................................................[done]
Looking for gpg keys in repository Security tools (openSUSE_Tumbleweed).
gpgkey=https://download.opensuse.org/repositories/security/openSUSE_Tumbleweed/repodata/repomd.xml.key
Building repository 'Security tools (openSUSE_Tumbleweed)' cache ..............................................................[done]
Looking for gpg keys in repository snappy.
gpgkey=https://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/repodata/repomd.xml.key
Retrieving repository 'snappy' metadata .......................................................................................[done]
Building repository 'snappy' cache ............................................................................................[done]
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
Nothing to do.
Also let me know if anything requires that I be in hybrid mode/have the DGPU active. For the most part I am running these command in Integrated mode unless specified.
It may be a while before my next response, its late at night for me.
Sorry, what should I be looking at in the BIOS? I did not see any GPU mode settings, or any GPU-related settings at all. I only know that the BIOS recognizes both IGPU and DGPU. I took some pictures of the BIOS that could help show what I am looking at.
I don’t own this hardware so difficult to advise specifically, but the image of the UEFI screen showing the RTX3060 is a good sign - it’s seen by the firmware at least.
From a root terminal do modprobe nvidia, then note any dmesg output generated dmesg | tail -50. Any errors evident?