openSUSE Tumbleweed XFCE issues with HDMI external monitor in hybrid NVIDIA/AMD environment

Hello everyone.

I’ve recently moved from Windows 10 to openSUSE Tumbleweed XFCE on my laptop.

I always had an external monitor, connected via HDMI.

Unfortunately, after installing openSUSE Tumblweed, I’m not able to use the second monitor anymore.

So, I’ve embarked in a troubleshooting journey that I’ve documented.

Any help would be really appreciated.


My PC

x86-64
Hardware Vendor: Lenovo
Hardware Model: IdeaPad Gaming 3 15ARH05

Operative Stystem

6.17.4-1-default
openSUSE Tumbleweed with XFCE Desktop Environment


External Monitor

https://aoc.com/uk/products/monitors/27b2h-eu/specification


The DisplayLink route
First of all, I’ve tried to install DisplayLink:

zypper addrepo https://download.opensuse.org/repositories/home:HEBH/openSUSE_Tumbleweed/home:HEBH.repo
zypper refresh
zypper install displaylink

Then rebooted and I would get stuck in the black screen with the blinking cursor, so I couldn’t login back.

So I’ved added the 3 option at the end of the linux line to boot with a console.

I’ve removed the displaylink driver:

zypper remove displaylink

Rebooted and I was able to work again

The hybrid graphics laptop

Working towards a solution

I’ve tried the command:

lspci -k | grep -A 3 -i vga

01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti Mobile] (rev a1)
	Subsystem: Lenovo Device 3a44
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
--
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)
	Subsystem: Lenovo Device 3a44
	Kernel modules: amdgpu
05:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor

Which highlighted that I had a “hybrid” graphics laptop.

echo $XDG_SESSION_TYPE

Revelad that I’m on x11

I’ve checked also if secureboot is enabled or not:

mokutil --sb-state
SecureBoot disabled

The suse-prime path

So, I’ve installed sudo zypper install suse-prime

And then ran:

sudo prime-select get-current

No driver configured.

So, I’ve selected the Nvidia driver:

sudo prime-select nvidia
nvidia catched
Preparing first configuration
NVIDIA modules are loaded
Logout to switch graphics

I’ve logged out and…

Funny thing is that I had a black screen with the cursor on the laptop display and the external monitor was receiving a signal because the light was white instead of red, but nothing displayed.

So, I needed to reboot with the console option 3 and unset the prime-select setting:

sudo prime-select unset

Then, I’ve rebooted and I was back again to the initial situation.

So, I’ve dediced to run a sudo zypper dup

I didn’t see any major changes related to nvidia so it was just about the version:

openSUSE Tumbleweed  20251022-0 -> 20251024-0

prime-select offload: a broken solution
The last resort, I’ve tried to use the offload option in prime-select to handle my hybrid situation:

sudo prime-select offload

offload catched
Preparing first configuration
NVIDIA modules are loaded
Logout to switch graphics

Then logged out again.

Ok, both screens ‘work’, but… on my laptop display the mouse cursor disappears, while on my external screen it works but there are some rendering glitches/lagging.

A lot of lagging in general, maybe a synchronisation issue?

I’ve checked where the amdgpu driver is used:

isolveproblems@localhost:~> lsmod | grep amdgpu
amdgpu              15683584  0
crc16                  12288  2 bluetooth,amdgpu
amdxcp                 12288  1 amdgpu
i2c_algo_bit           24576  1 amdgpu
drm_ttm_helper         16384  2 amdgpu,nvidia_drm
ttm                   126976  2 amdgpu,drm_ttm_helper
drm_exec               12288  1 amdgpu
gpu_sched              69632  1 amdgpu
drm_suballoc_helper    16384  1 amdgpu
drm_panel_backlight_quirks    12288  1 amdgpu
drm_buddy              28672  1 amdgpu
drm_display_helper    290816  1 amdgpu
video                  81920  3 amdgpu,ideapad_laptop,nvidia_modeset
cec                    98304  2 drm_display_helper,amdgpu

I had a look at the official openSUSE guide about Nvidia drivers and executed:

zypper addrepo --refresh https://download.nvidia.com/opensuse/tumbleweed NVIDIA`

zypper install-new-recommends

Rebooting again to see if anything changed…

Nothing.

I’ve checked the driver version with nvidia-smi which is the 580.95.05

Posting here also the inxi command output:

isolveproblems@localhost:~> inxi -Gxxz
Graphics:
  Device-1: NVIDIA TU117M [GeForce GTX 1650 Ti Mobile] vendor: Lenovo
    driver: nvidia v: 580.95.05 arch: Turing pcie: speed: 2.5 GT/s lanes: 8
    ports: active: none off: HDMI-A-1 empty: none bus-ID: 01:00.0
    chip-ID: 10de:1f95
  Device-2: Advanced Micro Devices [AMD/ATI] Renoir [Radeon Vega Series /
    Radeon Mobile Series] vendor: Lenovo driver: N/A arch: GCN-5 pcie:
    speed: 16 GT/s lanes: 16 bus-ID: 05:00.0 chip-ID: 1002:1636
  Device-3: HP HP 325 FHD Webcam driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 1-2:3 chip-ID: 03f0:664a
  Device-4: Syntek Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 1-3:5 chip-ID: 174f:244c
  Display: x11 server: X.org v: 1.21.1.15 compositor: xfwm4 v: 4.20.0
    driver: X: loaded: modesetting,nvidia dri: kms_swrast
    gpu: nv_platform,nvidia,nvidia-nvswitch display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 3840x1080
  Monitor-1: HDMI-A-1 mapped: HDMI-1-0 note: disabled pos: right
    model: AOC 27B2G5 res: 1920x1080 hz: 60 dpi: 82 diag: 686mm (27")
  Monitor-2: Unknown-1 mapped: None-1 pos: primary,left res: 1920x1080
    hz: 60 size: N/A
  API: OpenGL v: 4.5 vendor: mesa v: 25.2.5 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: llvmpipe (LLVM 21.1.3 256 bits)
    device-ID: ffffffff:ffffffff
  Info: Tools: api: glxinfo de: xfce4-display-settings gpu: nvidia-smi
    x11: xprop,xrandr

I’ve switched back to no driver with sudo prime-select unset to being able to use at least the laptop display to write this forum topic.

prime-select is quite deprecated an no longer recommended. Use switcherooctl SDB:NVIDIA Switcheroo Control - openSUSE Wiki.

Thanks for your quick reply, I really appreciate it.

I will be away from my office for a few days, but when I’m back I will remove prime-select and I will try with switcheroo-control.

Then, I will post here any updates (hopefully, a solution!)