Second Monitor Is Not Detected On Debian [Buster]
According to your lspci
output, your system has two GPUs: the CPU-integrated Intel iGPU, and a discrete NVidia GPU. With NVidia GPUs, this is called "Optimus" technology. To use both GPUs, you'll need to load the drivers for both of them. Do you have the xserver-xorg-video-nouveau
package installed?
It is possible that only the internal display of the laptop is wired to the Intel iGPU, and all the other display connectors are wired to the NVidia GPU.
There are two possible ways to implement such a system: either there is a hardware switch (also known as multiplexer) that can switch some or all of the display outputs between the GPUs, or the hardware switch is omitted and software solutions are used instead to pass the graphics data between one GPU to the other whenever needed.
If there is an Optimus-compliant hardware multiplexer, it should be accessible via the vga-switcheroo
subsystem. You can find out more by mounting the debugfs
virtual filesystem (mount -t debugfs none /sys/kernel/debug
) and then seeing if /sys/kernel/debug/vgaswitcheroo/switch
exists. But modern GPU drivers may control the vga-switcheroo
subsystem more or less automatically.
Once the NVidia xserver-xorg-video-nouveau
is installed and the system is rebooted, it should auto-detect the NVidia GPU and present it as a second provider in the xrandr --listproviders
output.
With the open-source nouveau
driver, you can then use the xrandr --setprovideroutputsource
to set up the connection between the GPUs the way you wish: either using the iGPU to do the work and just use the NVidia GPU simply as an extra set of display connectors (to save laptop battery power), or to have the NVidia GPU produce the graphics and just use the iGPU as another output (to gain more graphics performance).
Getting a two-GPU system working optimally is not exactly trivial, because different manufacturers do things slightly differently. As an alternative, the UEFI firmware settings ("BIOS settings") may include an option to switch using just one GPU, which sometimes can switch all the display outputs to the only active GPU, even if there is no OS-controllable multiplexer present. If you run into problems in a two-GPU setup and need the system in an usable configuration ASAP, you might try switching the system to a single-GPU mode and seeing if it fulfills your requirements for now.
Related videos on Youtube
Moein Hosseini
Hi, I'm Moein Hosseini. experienced in web application development by Angular framework. I've also worked as a backend developer using NodeJs and express framework. I'm in love with coding and learning new things every day.
Updated on September 18, 2022Comments
-
Moein Hosseini over 1 year
I recently installed Debian 10 and I can not get my second monitor work. This is my xrender output:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192 eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm 1920x1080 60.02*+ 60.01 59.97 59.96 59.93 1680x1050 59.95 59.88 1600x1024 60.17 1400x1050 59.98 1600x900 59.99 59.94 59.95 59.82 1280x1024 60.02 1440x900 59.89 1400x900 59.96 59.88 1280x960 60.00 1440x810 60.00 59.97 1368x768 59.88 59.85 1360x768 59.80 59.96 1280x800 59.99 59.97 59.81 59.91 1152x864 60.00 1280x720 60.00 59.99 59.86 59.74 1024x768 60.04 60.00 960x720 60.00 928x696 60.05 896x672 60.01 1024x576 59.95 59.96 59.90 59.82 960x600 59.93 60.00 960x540 59.96 59.99 59.63 59.82 800x600 60.00 60.32 56.25 840x525 60.01 59.88 864x486 59.92 59.57 800x512 60.17 700x525 59.98 800x450 59.95 59.82 640x512 60.02 720x450 59.89 700x450 59.96 59.88 640x480 60.00 59.94 720x405 59.51 58.99 684x384 59.88 59.85 680x384 59.80 59.96 640x400 59.88 59.98 576x432 60.06 640x360 59.86 59.83 59.84 59.32 512x384 60.00 512x288 60.00 59.92 480x270 59.63 59.82 400x300 60.32 56.34 432x243 59.92 59.57 320x240 60.05 360x202 59.51 59.13 320x180 59.84 59.32
I have connected the second monitor using hdmi.
The output of lspci:
➜ ~ lspci|grep VGA 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)
And the output of providers is:
➜ ~ xrandr --listproviders Providers: number : 1 Provider 0: id: 0x43 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 1 associated providers: 0 name:modesetting
-
RodolfoAP over 4 yearsDoes this means that nouveau should not be blacklisted?
-
John Leuenhagen about 4 yearsWelcome to Unix Stack Exchange! Before submitting an answer like this, try to request more information from the asker. For example, leave a comment on their post asking if their monitor shows up as default, or if they had edited grub to include "nomodeset". Once you've confirmed this, it will allow you to leave a more elaborate answer. Thanks for contributing!
-
telcoM almost 3 years@RodolfoAP Until very recently, the closed-source
nvidia
driver had very limited Optimus support: I think it could pass pre-rendered image data to another GPU for output, but nothing else. The open-sourcenouveau
might have had worse performance, but it could support more Optimus scenarios than the closed-source driver. So in an Optimus dual-GPU system, you should blacklistnouveau
if and only if you are usingnvidia
and are satisfied with it. -
BdN3504 about 2 yearsWOW, I have been working on a machine since almost a year and was struggling to enable screen sharing. Under wayland, I just could not get it to work. Disabling wayland made screen sharing possible but that lead to my external monitor not being detected. Thanks to your post I am finally able to share my screen AND use my external monitor. I only had to switch my BIOS settings to only use discrete graphics. I am very grateful! Thank you so much!