"Advanced Optimus" on Dell MA16250 Laptop (internal Display)

Running tumbleweed 20260605 I see both GPUs with

#lspci -nnk | grep -EA3 VGA 
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Arrow Lake-P [Arc Pro 130T/140T] [8086:7d51] (rev 03)
        Subsystem: Dell Device [1028:0d33]
        Kernel driver in use: i915
        Kernel modules: i915, xe
--
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GB205GLM [RTX PRO 3000 Blackwell Generation Laptop GPU] [10de:2f38] (rev a1)
        Subsystem: Dell Device [1028:0d33]
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia

But neither

#switcherooctl list
Device: 0
  Name:        Intel Corporation Arrow Lake-P [Arc Pro 130T/140T]
  Default:     yes
  Discrete:    no
  Environment: DRI_PRIME=pci-0000_00_02_0 VK_LOADER_DRIVERS_SELECT=*intel*

nor

#lsgpu
card1                    Intel Meteorlake (Gen12)          drm:/dev/dri/card1
└─renderD128                                               drm:/dev/dri/renderD128

shows the nvidia device. However

#lsmod | grep nvidia
nvidia_uvm           3989504  0
nvidia_drm            147456  0
nvidia_modeset       2285568  1 nvidia_drm
nvidia_wmi_ec_backlight    12288  0
nvidia              16064512  2 nvidia_uvm,nvidia_modeset
drm_ttm_helper         20480  2 nvidia_drm,xe
video                  81920  6 nvidia_wmi_ec_backlight,dell_wmi,dell_laptop,xe,i915,nvidia_modeset
wmi                    40960  9 dell_wmi_sysman,video,nvidia_wmi_ec_backlight,dell_wmi_ddv,dell_wmi,wmi_bmof,dell_smm_hwmon,dell_smbios,dell_wmi_descriptor

indicates the nvidia driver (propriatary G07) is loaded

If I switch off “Hybrid Graphics/Advanced Optimus” in the laptops UEFI setup I get only a black screen when booting into Tumbleweed. According to Dells docs : “If deselected the internal display and the left side Thunderbolt ports will be driven by the discrete graphics controler”
Any ideas how to make use of the Nvidia GPU in that laptop ?

Please show:

zypper lr -d
zypper se -si nvidia

I guess that you have installed the Nvidia kernel driver but you miss the other nvidia-G07 packages needed for graphical output to a display.
S. Dirsch’s blog might be a good reference for further details.

#zypper lr -d 
ienst 'NVIDIA' wird aktualisiert.
Dienst 'openSUSE' wird aktualisiert.
# | Alias                                  | Name                 | Enabled | GPG Check | Refresh | Keep | Priority | Type   | URI                                                                 | Service
--+----------------------------------------+----------------------+---------+-----------+---------+------+----------+--------+---------------------------------------------------------------------+---------
1 | NVIDIA:repo-non-free                   | repo-non-free        | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | https://download.nvidia.com/opensuse/tumbleweed                     | NVIDIA
2 | ftp.gwdg.de-openSUSE_Tumbleweed        | Packman Repository   | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ | 
3 | openSUSE:repo-non-oss                  | repo-non-oss         | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/non-oss                     | openSUSE
4 | openSUSE:repo-openh264                 | repo-openh264        | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | https://codecs.opensuse.org/openh264/openSUSE_Tumbleweed            | openSUSE
5 | openSUSE:repo-oss                      | repo-oss             | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://cdn.opensuse.org/tumbleweed/repo/oss                         | openSUSE
6 | openSUSE:repo-oss-debug                | repo-oss-debug       | Nein    | ----      | ----    | -    |   99     | N/A    | http://cdn.opensuse.org/debug/tumbleweed/repo/oss                   | openSUSE
7 | openSUSE:repo-oss-source               | repo-oss-source      | Nein    | ----      | ----    | -    |   99     | N/A    | http://cdn.opensuse.org/source/tumbleweed/repo/oss                  | openSUSE
8 | openSUSE:update-tumbleweed             | update-tumbleweed    | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://cdn.opensuse.org/update/tumbleweed                           | openSUSE
9 | opensuse-guide.org-openSUSE_Tumbleweed | libdvdcss repository | Ja      | (r ) Ja   | Ja      | -    |   99     | rpm-md | http://opensuse-guide.org/repo/openSUSE_Tumbleweed/                 | 

#zypper se -si nvidia
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...

S  | Name                             | Type  | Version              | Arch   | Repository
---+----------------------------------+-------+----------------------+--------+--------------
i  | kernel-firmware-nvidia           | Paket | 20260408-1.1         | noarch | repo-oss
i  | libnvidia-cfg                    | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-egl-gbm1               | Paket | 1.1.3-11.2           | x86_64 | repo-non-free
i  | libnvidia-egl-gbm1-32bit         | Paket | 1.1.3-11.1           | x86_64 | repo-non-free
i  | libnvidia-egl-wayland1           | Paket | 1.1.22-57.4          | x86_64 | repo-non-free
i  | libnvidia-egl-wayland1-32bit     | Paket | 1.1.22-57.2          | x86_64 | repo-non-free
i  | libnvidia-egl-x111               | Paket | 1.0.5-26.2           | x86_64 | repo-non-free
i  | libnvidia-egl-x111-32bit         | Paket | 1.0.5-26.1           | x86_64 | repo-non-free
i  | libnvidia-gpucomp                | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-gpucomp-32bit          | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-ml                     | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-ml-32bit               | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-common-G07                | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-compute-G07               | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-compute-G07-32bit         | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-compute-utils-G07         | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-gl-G07                    | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-gl-G07-32bit              | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-modprobe                  | Paket | 595.80-2.1           | x86_64 | repo-non-free
i  | nvidia-persistenced              | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-userspace-meta-G07        | Paket | 595.80-19.1          | x86_64 | repo-non-free
i+ | nvidia-video-G07                 | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-video-G07-32bit           | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-xconfig                   | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | openSUSE-repos-Tumbleweed-NVIDIA | Paket | 20260423.1a6a0f3-2.1 | x86_64 | repo-oss
i+ | pcp-pmda-nvidia-gpu              | Paket | 6.3.8-2.1            | x86_64 | repo-oss


You are missing the kernel module package…
sudo zypper in nvidia-open-driver-G07-signed-kmp-meta

@hui no, they are out of sync version wise… as in no 595.80 version of the meta package…

@mkossmann zypper in nvidia-open-driver-G07-signed-kmp-default should give 595.80_k7.0.11_1-2.3 to match the installed packages…

I have;

zypper se -si nvidia

S  | Name                                      | Type    | Version              | Arch   | Repository
---+-------------------------------------------+---------+----------------------+--------+--------------
i  | kernel-firmware-nvidia                    | package | 20260408-1.1         | noarch | repo-oss
i+ | libnvidia-cfg                             | package | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-egl-gbm1                        | package | 1.1.3-11.2           | x86_64 | repo-non-free
i  | libnvidia-egl-wayland1                    | package | 1.1.22-57.4          | x86_64 | repo-non-free
i  | libnvidia-egl-x111                        | package | 1.0.5-26.2           | x86_64 | repo-non-free
i+ | libnvidia-gpucomp                         | package | 595.80-7.1           | x86_64 | repo-non-free
i+ | libnvidia-ml                              | package | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-common-G07                         | package | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-compute-G07                        | package | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-compute-utils-G07                  | package | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-gl-G07                             | package | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-modprobe                           | package | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-open-driver-G07-signed-kmp-default | package | 595.80_k7.0.11_1-2.3 | x86_64 | repo-oss
i+ | nvidia-persistenced                       | package | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-userspace-meta-G07                 | package | 595.80-19.1          | x86_64 | repo-non-free
i+ | nvidia-video-G07                          | package | 595.80-7.1           | x86_64 | repo-non-free
i  | openSUSE-repos-Tumbleweed-NVIDIA          | package | 20260423.1a6a0f3-2.1 | x86_64 | repo-oss

Even the cuda version is out of sync… nvidia-open-driver-G07-signed-cuda-kmp-default 610.43.02_k7.0.11_1-2.2

This was explained quite often by the package maintainer. The meta package can have a lower version number. He only updates the minor version and the meta package takes care that the highest available matching set of packages get installed.

With the G07 series you only have to install nvidia-open-driver-G07-signed-kmp-meta, and all other needed packages get automatically installed as dependency.

The cuda kmp is an other story.

:~> zypper se -si nvidia
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...

S  | Name                                      | Type  | Version              | Arch   | Repository
---+-------------------------------------------+-------+----------------------+--------+--------------
i+ | kernel-firmware-nvidia                    | Paket | 20260408-1.1         | noarch | repo-oss
i  | libnvidia-cfg                             | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | libnvidia-egl-gbm1                        | Paket | 1.1.3-11.2           | x86_64 | repo-non-free
i+ | libnvidia-egl-gbm1-32bit                  | Paket | 1.1.3-11.1           | x86_64 | repo-non-free
i+ | libnvidia-egl-wayland1                    | Paket | 1.1.22-57.4          | x86_64 | repo-non-free
i+ | libnvidia-egl-wayland1-32bit              | Paket | 1.1.22-57.2          | x86_64 | repo-non-free
i+ | libnvidia-egl-x111                        | Paket | 1.0.5-26.2           | x86_64 | repo-non-free
i+ | libnvidia-egl-x111-32bit                  | Paket | 1.0.5-26.1           | x86_64 | repo-non-free
i+ | libnvidia-gpucomp                         | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | libnvidia-gpucomp-32bit                   | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-ml                              | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-ml-32bit                        | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-common-G07                         | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-compute-G07                        | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-compute-G07-32bit                  | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-compute-utils-G07                  | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-gl-G07                             | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-gl-G07-32bit                       | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-libXNVCtrl                         | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-modprobe                           | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-open-driver-G07-signed-kmp-default | Paket | 595.80_k7.0.11_1-2.3 | x86_64 | repo-oss
i+ | nvidia-open-driver-G07-signed-kmp-meta    | Paket | 595.71.05-19.1       | x86_64 | repo-non-free
i+ | nvidia-persistenced                       | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-settings                           | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-userspace-meta-G07                 | Paket | 595.80-19.1          | x86_64 | repo-non-free
i  | nvidia-video-G07                          | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-video-G07-32bit                    | Paket | 595.80-7.1           | x86_64 | repo-non-fre

In my use case with the cuda kmp, there is no meta package…

Trying this configuration

#zypper se -si nvidia
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...

S  | Name                                      | Type  | Version              | Arch   | Repository
---+-------------------------------------------+-------+----------------------+--------+--------------
i  | kernel-firmware-nvidia                    | Paket | 20260408-1.1         | noarch | repo-oss
i  | libnvidia-cfg                             | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-egl-gbm1                        | Paket | 1.1.3-11.2           | x86_64 | repo-non-free
i  | libnvidia-egl-gbm1-32bit                  | Paket | 1.1.3-11.1           | x86_64 | repo-non-free
i  | libnvidia-egl-wayland1                    | Paket | 1.1.22-57.4          | x86_64 | repo-non-free
i  | libnvidia-egl-wayland1-32bit              | Paket | 1.1.22-57.2          | x86_64 | repo-non-free
i  | libnvidia-egl-x111                        | Paket | 1.0.5-26.2           | x86_64 | repo-non-free
i  | libnvidia-egl-x111-32bit                  | Paket | 1.0.5-26.1           | x86_64 | repo-non-free
i  | libnvidia-gpucomp                         | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-gpucomp-32bit                   | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-ml                              | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | libnvidia-ml-32bit                        | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-common-G07                         | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-compute-G07                        | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-compute-G07-32bit                  | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-compute-utils-G07                  | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-gl-G07                             | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-gl-G07-32bit                       | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-modprobe                           | Paket | 595.80-2.1           | x86_64 | repo-non-free
i  | nvidia-open-driver-G07-signed-kmp-default | Paket | 595.80_k7.0.11_1-2.3 | x86_64 | repo-oss
i+ | nvidia-open-driver-G07-signed-kmp-meta    | Paket | 595.71.05-19.1       | x86_64 | repo-non-free
i  | nvidia-persistenced                       | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | nvidia-userspace-meta-G07                 | Paket | 595.80-19.1          | x86_64 | repo-non-free
i+ | nvidia-video-G07                          | Paket | 595.80-7.1           | x86_64 | repo-non-free
i+ | nvidia-video-G07-32bit                    | Paket | 595.80-7.1           | x86_64 | repo-non-free
i  | nvidia-xconfig                            | Paket | 595.80-2.1           | x86_64 | repo-non-free
i+ | openSUSE-repos-Tumbleweed-NVIDIA          | Paket | 20260423.1a6a0f3-2.1 | x86_64 | repo-oss
i+ | pcp-pmda-nvidia-gpu                       | Paket | 6.3.8-2.1            | x86_64 | repo-oss

boots into a black screen : Mouse cursor working, but no sddm login screen . That seems to be a Plasma/X11 problem . With Plasma/Wayland I get the login screen. But still no Nvidia GPU according to lsgpu and switcherooctl. Even if I enforce it in the UEFI setup. Then I get only low resolution fallback
BTW Looks like I found a bug in switcherooctl, too “switcherooctl lisz” (note the typo) generates a traceback instead of an error message

@mkossmann It could also be related to a recent (very long) thread with folks having issues with the Nvidia driver and a patch introduced. This could result in a regression for your Blackwell gpu…

If you add initcall_blacklist=sysfb_init to the kernel boot options what happens?

Ref: https://forums.opensuse.org/t/black-screen-on-nvidia-after-updating-to-20260428/193454

This kernel parameter seems to fix the Plasma/X11 Blackscreen. But the Nvidia GPU still isn’t listed by switcherooctl

@mkossmann then that is a regression… if you run the command nvidia-smi what happens?

Your going to have to create a bug report I suspect…