How to switch to the NVIDIA dGPU in Tumbleweed?

Hi,
FYI: I’m very new to SUSE (coming from KDE neon).

I recently purchased a Slimbook Hero laptop and installed Tumbleweed on it. I installed suse-prime, nvidia drivers, slimbook indicator.
The GPU switch button doesn’t work and I have no way to switch from the iGPU to the NVIDIA GPU.
Infocenter recognises the gpu though:

01:00.0 VGA compatible controller: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] (rev a1) (prog-if 00 [VGA controller])
	Kernel modules: nouveau, nvidia_drm, nvidia

What else am I missing?

Thanks in advance,
Áron

@aronkvh Hi and welcome to the Forum :smile:
The newer Nvidia GPU’s don’t tend to play nice with suse-prime…

What desktop environment?

Can you show the output from cat /proc/cmdline and inxi -Gxxz

Peruse this thread about the same sort of issue https://forums.opensuse.org/t/atomic-modeset-error-22-after-latest-nvidia-update-on-tumbleweed/175455

The desktop is KDE Plasma,
cat /proc/cmdline:
BOOT_IMAGE=/boot/vmlinuz-6.9.3-1-default root=UUID=85778f64-4d0e-456e-b03b-5e90e2fb8256 splash=silent quiet security=apparmor mitigations=auto
inxi:

Graphics:
  Device-1: Intel Raptor Lake-P [UHD Graphics] vendor: Tongfang Hongkong
    driver: i915 v: kernel arch: Gen-13 ports: active: eDP-1 empty: none
    bus-ID: 00:02.0 chip-ID: 8086:a7a8
  Device-2: NVIDIA AD107M [GeForce RTX 4060 Max-Q / Mobile]
    vendor: Tongfang Hongkong driver: N/A arch: Lovelace pcie: speed: 16 GT/s
    lanes: 8 bus-ID: 01:00.0 chip-ID: 10de:28a0
  Device-3: SunplusIT HD Webcam driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 1-5:2 chip-ID: 2b7e:b651
  Display: x11 server: X.Org v: 21.1.12 with: Xwayland v: 24.1.0
    compositor: kwin_x11 driver: X: loaded: modesetting unloaded: fbdev,vesa
    alternate: intel dri: iris gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96
  Monitor-1: eDP-1 model: BOE Display 0x0b40 res: 2560x1440 dpi: 189
    diag: 395mm (15.5")
  API: EGL v: 1.5 platforms: device: 0 drv: iris device: 1 drv: swrast
    surfaceless: drv: iris x11: drv: iris inactive: gbm,wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.0.8 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel Graphics (RPL-P)
    device-ID: 8086:a7a8
  API: Vulkan v: 1.3.283 surfaces: xcb,xlib device: 0 type: integrated-gpu
    driver: N/A device-ID: 8086:a7a8

I think the problem might be secureboot. I haven’t seen the screen to enroll the MOK keys, and I can’t find what command (which variables) to run to re-import them.

@aronkvh Do you see a message in the output from journactl -b about this? It can also be fallout from suse-prime…

I didn’t find anything that sounds relevant

@aronkvh I would uninstall suse-prime, reboot and check the output from inxi -Gxxz

1 Like

Thanks but that alone didn’t solve it.
I’m trying to run mokutil --import /var/lib/nvidia-pubkeys/MOK-nvidia-gfxG06-nvidia-gl-G06-550.90.07-23.1.x86_64-default.der --root-pw
but get
Failed to get file status

what am I doing wrong?

The certificate is now found under /usr/share/nvidia-pubkeys instead of /var/lib/nvidia-pubkeys

1 Like

Thanks, the command
mokutil --import /usr/share/nvidia-pubkeys/MOK-nvidia-driver-G06-550.90.07-23.1-default.der -root -pw
finally worked.

but the switch still doesn’t work

@aronkvh Hi, what do you mean didn’t work, there is no ‘switching’, unless there is a BIOS option to disable the iGPU…

So you removed suse-prime, can you show the output from inxi -Gaz

Sorry I meant that the MUX switch doesn’t do anything visible.

If I set MsHybrid from the BIOS, I can’t use any apps with the dGPU. Even if I set it to dGPU only from the BIOS , some apps like Blender don’t recognize my graphics card.

inxi -Gaz:

Graphics:
  Device-1: Intel Raptor Lake-P [UHD Graphics] vendor: Tongfang Hongkong
    driver: i915 v: kernel alternate: xe arch: Gen-13 process: Intel 7 (10nm)
    built: 2022+ ports: active: eDP-1 empty: none bus-ID: 00:02.0
    chip-ID: 8086:a7a8 class-ID: 0300
  *Device-2: NVIDIA AD107M [GeForce RTX 4060 Max-Q / Mobile]
    vendor: Tongfang Hongkong driver: nvidia v: 550.90.07
    alternate: nouveau,nvidia_drm non-free: 550.xx+
    status: current (as of 2024-04) arch: Lovelace code: AD1xx
    process: TSMC n4 (5nm) built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 8
    ports: active: none empty: DP-1,HDMI-A-1,eDP-2 bus-ID: 01:00.0
    chip-ID: 10de:28a0 class-ID: 0300
  Device-3: SunplusIT HD Webcam driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-5:3 chip-ID: 2b7e:b651
    class-ID: 0e02 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.12 with: Xwayland v: 24.1.0
    compositor: kwin_wayland driver: X: loaded: modesetting,nvidia
    unloaded: fbdev,vesa alternate: intel,nouveau,nv dri: iris
    gpu: i915,nvidia display-ID: 0
  Monitor-1: eDP-1 res: 1707x960 size: N/A modes: N/A
  API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
    drv: nvidia device: 1 drv: iris device: 3 drv: swrast surfaceless:
    drv: nvidia wayland: drv: iris x11: drv: iris inactive: gbm,device-2
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.0.8 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel Graphics (RPL-P)
    device-ID: 8086:a7a8 memory: 30.36 GiB unified: yes display-ID: :1.0
  API: Vulkan v: 1.3.283 layers: 6 device: 0 type: integrated-gpu
    name: Intel Graphics (RPL-P) driver: N/A device-ID: 8086:a7a8
    surfaces: xcb,xlib,wayland device: 1 type: discrete-gpu name: NVIDIA
    GeForce RTX 4060 Laptop GPU driver: N/A device-ID: 10de:28a0
    surfaces: xcb,xlib,wayland

@aronkvh So in the output now you see the GPU, so if you want to use switcherooctl the you need to set the hybrid mode in the BIOS.

So first off add a lock to suse-prime and need to install switcherooctl (if not already installed)

zypper al suse-prime
zypper in switcheroo-control
systemctl enable switcheroo-control.service

Reboot the system and setup the BIOS, then after it reboots can you show the output from inxi -GSa

If I run switcherooctl -g 1 blender, it still doesn’t recognize the GPU.
the output is the same

raphics:
  Device-1: Intel Raptor Lake-P [UHD Graphics] vendor: Tongfang Hongkong
    driver: i915 v: kernel alternate: xe arch: Gen-13 process: Intel 7 (10nm)
    built: 2022+ ports: active: eDP-1 empty: none bus-ID: 00:02.0
    chip-ID: 8086:a7a8 class-ID: 0300
  Device-2: NVIDIA AD107M [GeForce RTX 4060 Max-Q / Mobile]
    vendor: Tongfang Hongkong driver: nvidia v: 550.90.07
    alternate: nouveau,nvidia_drm non-free: 550.xx+
    status: current (as of 2024-04) arch: Lovelace code: AD1xx
    process: TSMC n4 (5nm) built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 8
    ports: active: none empty: DP-1,HDMI-A-1,eDP-2 bus-ID: 01:00.0
    chip-ID: 10de:28a0 class-ID: 0300
  Device-3: SunplusIT HD Webcam driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-5:3 chip-ID: 2b7e:b651
    class-ID: 0e02 serial: Integrated Camera
  Display: wayland server: X.org v: 1.21.1.12 with: Xwayland v: 24.1.0
    compositor: kwin_wayland driver: X: loaded: modesetting,nvidia
    unloaded: fbdev,vesa alternate: intel,nouveau,nv dri: iris
    gpu: i915,nvidia display-ID: 0
  Monitor-1: eDP-1 res: 1707x960 size: N/A modes: N/A
  API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
    drv: nvidia device: 1 drv: iris device: 3 drv: swrast surfaceless:
    drv: nvidia wayland: drv: iris x11: drv: iris inactive: gbm,device-2
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.0.8 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel Graphics (RPL-P)
    device-ID: 8086:a7a8 memory: 30.36 GiB unified: yes display-ID: :1.0
  API: Vulkan v: 1.3.283 layers: 6 device: 0 type: integrated-gpu
    name: Intel Graphics (RPL-P) driver: N/A device-ID: 8086:a7a8
    surfaces: xcb,xlib,wayland device: 1 type: discrete-gpu name: NVIDIA
    GeForce RTX 4060 Laptop GPU driver: N/A device-ID: 10de:28a0
    surfaces: xcb,xlib,wayland
**félkövér szöveg**

@aronkvh What does switcheroctl list and cat /proc/cmdlineshow?

Device: 0
  Name:        Intel Corporation Raptor Lake-P [UHD Graphics]
  Default:     yes
  Environment: DRI_PRIME=pci-0000_00_02_0

Device: 1
  Name:        NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile]
  Default:     no
  Environment: __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only

@aronkvh and cat /proc/cmdline

BOOT_IMAGE=/boot/vmlinuz-6.9.3-1-default root=UUID=85778f64-4d0e-456e-b03b-5e90e2fb8256 splash=silent quiet security=
apparmor mitigations=auto

@aronkvh If you fire up YaST Bootloader and add the kernel option nosimplefb=1 and reboot, that should hopefully getting it using the Intel GPU properly.

Then can you run and paste the output from;

glxinfo | grep "OpenGL renderer"
switcherooctl glxinfo | grep "OpenGL renderer"

glxinfo | grep “OpenGL renderer”
OpenGL renderer string: Mesa Intel(R) Graphics (RPL-P)
switcherooctl glxinfo | grep “OpenGL renderer”
OpenGL renderer string: NVIDIA GeForce RTX 4060 Laptop GPU/PCIe/SSE2