[Solved] Debian, Nvidia optimus laptop, dual monitor problem

I installed Debian 11.3 on a Dell Inspiron 15 laptop that uses a Intel HD Graphics 630 + a Nvidia GP107M (GTX1050Ti) GPUs. Presently the stock i915 and nouveau drivers are used respectively.

I want to have a dual monitor setup where my desktop extends to the secondary HDMI monitor.

While the O/S is booting, a display plugged into the HDMI port mirrors the laptop display. Therefore I do not believe it is a cable/hardware/driver issue of the secondary HDMI monitor not being detected.

Once the Desktop Environment is loaded, the monitor is no longer detected.

I’ve read the different advice posted on different forums without success. Glxgears gives about 60 FPS, only on the laptop display.

Please install the nvidia driver, then follow this:
https://forums.developer.nvidia.com/t/2060m-archlinux-xorg-prime-installed-super-low-performance-everywhere/212293/6

1 Like

Thank you for your reply, Generix.

I followed the instructions you provided a link to, and unfortunately it still doesn’t work. Two things to note:

  1. My /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf file doesn’t exist.

  2. The HDMI monitor briefly mirroring the laptop display during bootup, and then stopping when the Desktop Manager welcome screen comes up, has stopped happening entirely. Now the secondary monitor is completely unresponsive during bootup. A fresh install reverses this.

Here are the packages I’ve installed:

ii bumblebee-nvidia 3.2.1-27 amd64 NVIDIA Optimus support using the proprietary NVIDIA driver
ii glx-alternative-nvidia 1.2.1~deb11u1 amd64 allows the selection of NVIDIA as GLX provider
ii libegl-nvidia0:amd64 460.91.03-1 amd64 NVIDIA binary EGL library
ii libgl1-nvidia-glvnd-glx:amd64 460.91.03-1 amd64 NVIDIA binary OpenGL/GLX library (GLVND variant)
ii libgles-nvidia1:amd64 460.91.03-1 amd64 NVIDIA binary OpenGL|ES 1.x library
ii libgles-nvidia2:amd64 460.91.03-1 amd64 NVIDIA binary OpenGL|ES 2.x library
ii libglx-nvidia0:amd64 460.91.03-1 amd64 NVIDIA binary GLX library
ii libnvidia-cbl:amd64 460.91.03-1 amd64 NVIDIA binary Vulkan ray tracing (cbl) library
ii libnvidia-cfg1:amd64 460.91.03-1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-eglcore:amd64 460.91.03-1 amd64 NVIDIA binary EGL core libraries
ii libnvidia-encode1:amd64 460.91.03-1 amd64 NVENC Video Encoding runtime library
ii libnvidia-glcore:amd64 460.91.03-1 amd64 NVIDIA binary OpenGL/GLX core libraries
ii libnvidia-glvkspirv:amd64 460.91.03-1 amd64 NVIDIA binary Vulkan Spir-V compiler library
ii libnvidia-ml1:amd64 460.91.03-1 amd64 NVIDIA Management Library (NVML) runtime library
ii libnvidia-ptxjitcompiler1:amd64 460.91.03-1 amd64 NVIDIA PTX JIT Compiler library
ii libnvidia-rtcore:amd64 460.91.03-1 amd64 NVIDIA binary Vulkan ray tracing (rtcore) library
ii nvidia-alternative 460.91.03-1 amd64 allows the selection of NVIDIA as GLX provider
ii nvidia-driver 460.91.03-1 amd64 NVIDIA metapackage
ii nvidia-driver-bin 460.91.03-1 amd64 NVIDIA driver support binaries
ii nvidia-driver-libs:amd64 460.91.03-1 amd64 NVIDIA metapackage (OpenGL/GLX/EGL/GLES libraries)
ii nvidia-egl-common 460.91.03-1 amd64 NVIDIA binary EGL driver - common files
ii nvidia-egl-icd:amd64 460.91.03-1 amd64 NVIDIA EGL installable client driver (ICD)
ii nvidia-installer-cleanup 20151021+13 amd64 cleanup after driver installation with the nvidia-installer
ii nvidia-kernel-common 20151021+13 amd64 NVIDIA binary kernel module support files
ii nvidia-kernel-dkms 460.91.03-1 amd64 NVIDIA binary kernel module DKMS source
ii nvidia-kernel-support 460.91.03-1 amd64 NVIDIA binary kernel module support files
ii nvidia-legacy-check 460.91.03-1 amd64 check for NVIDIA GPUs requiring a legacy driver
ii nvidia-modprobe 470.103.01-1~deb11u1 amd64 utility to load NVIDIA kernel modules and create device nodes
ii nvidia-persistenced 460.32.03-1 amd64 daemon to maintain persistent software state in the NVIDIA driver
ii nvidia-primus-vk-common 1.6.1-1 amd64 thin wrapper for the NVIDIA binary Vulkan ICD (common files)
ii nvidia-primus-vk-wrapper:amd64 1.6.1-1 amd64 thin wrapper for using the NVIDIA binary Vulkan ICD with bumblebee
ii nvidia-settings 460.91.03-1 amd64 tool for configuring the NVIDIA graphics driver
ii nvidia-smi 460.91.03-1 amd64 NVIDIA System Management Interface
ii nvidia-support 20151021+13 amd64 NVIDIA binary graphics driver support files
ii nvidia-vdpau-driver:amd64 460.91.03-1 amd64 Video Decode and Presentation API for Unix - NVIDIA driver
ii nvidia-vulkan-common 460.91.03-1 amd64 NVIDIA Vulkan driver - common files
ii nvidia-vulkan-icd:amd64 460.91.03-1 amd64 NVIDIA Vulkan installable client driver (ICD)
ii xserver-xorg-video-nvidia 460.91.03-1 amd64 NVIDIA binary Xorg driver

ii bumblebee 3.2.1-27 amd64 NVIDIA Optimus support for Linux
ii bumblebee-nvidia 3.2.1-27 amd64 NVIDIA Optimus support using the proprietary NVIDIA driver
ii nvidia-primus-vk-wrapper:amd64 1.6.1-1 amd64 thin wrapper for using the NVIDIA binary Vulkan ICD with bumblebee

ii arandr 0.1.10-1.1 all Simple visual front end for XRandR
ii autorandr 1.11-1 all Automatically select a display configuration for connected devices
ii libxcb-randr0:amd64 1.14-3 amd64 X C Binding, randr extension
ii libxrandr2:amd64 2:1.5.1-1 amd64 X11 RandR extension library
ii lxrandr 0.3.2-1+b1 amd64 LXDE monitor configuration tool

Please uninstall bumblebee and bbswitch.

1 Like

Great! The desktop is extended to the secondary monitor now. Thank you.

glxgears is still showing 60 FPS although glxinfo | grep NVIDIA shows

server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
OpenGL core profile version string: 4.6.0 NVIDIA 460.91.03
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 460.91.03
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 460.91.03

I made a lot of changes in a trial-and-error process to get things working. To document the process for others, is there a way to know exactly which changes (config files + installed packages) I did which were the ones responsible for getting things working?

60fps is normal, it’s locked to vsync.

1 Like