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

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.

  • Does this means that nouveau should not be blacklisted?
    – RodolfoAP
    Jan 9 '20 at 10:29
  • @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-source nouveau 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 blacklist nouveau if and only if you are using nvidia and are satisfied with it.
    – telcoM
    Jun 25 at 22:46

I had a similar problem, my "monitor" showed up as "default" in display settings, it turns out I had edited grub to include the parameter 'nomodeset' which basically, from my understating acts like a safe mode for display outputs.

  • Welcome 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! May 1 '20 at 2:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.