4

OS: GNOME 3.30.2 on Debian GNU/Linux 10 (64-bit)

My laptop has no output from the HDMI port. The monitor shows "NO INPUT DETECTED". Previously I had Kubuntu installed and before that I had windows 10, Both worked fine, which means this is not a hardware issue.

I have tried:

  • Using the package "ARandR" to scan for new displays.

  • Plugging in different monitors and HDMI cords.

  • Booting the machine with the display plugged in.

SPECS:

LAPTOP: Acer Nitro 7 (AN715-51) 
GPU: GeForce GTX 1650
CPU: Intel Core i7-9750H 

Output of xrandr:

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 193mm
   1920x1080     60.01*+  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  

Output of 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

Output of lspci -nn | grep VGA:

00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 630 (Mobile) [8086:3e9b]
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1f91] (rev a1)

Output of aplay -l:

card 0: PCH [HDA Intel PCH], device 0: ALC255 Analog 
[ALC255 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0

Output of lshw -c video:

*-display                 
       description: VGA compatible controller
       product: NVIDIA Corporation
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:154 memory:a3000000-a3ffffff memory:90000000-9fffffff memory:a0000000-a1ffffff ioport:5000(size=128) memory:a4000000-a407ffff
  *-display
       description: VGA compatible controller
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:128 memory:a2000000-a2ffffff memory:b0000000-bfffffff ioport:6000(size=64) memory:c0000-dffff
3

You have a laptop with two GPUs, using Nvidia's "Optimus" technology.

The low-power CPU-integrated Intel iGPU is physically wired to output to the laptop's internal display, while the HDMI output is wired to the more powerful Nvidia discrete GPU. The device ID 10de:1f91 indicates the Nvidia GPU is GeForce GTX 1650 Mobile / Max-Q. The Nvidia codename for that GPU is TU117M.

The laptop may or may not have the capability of switching the outputs between GPUs; if such a capability exists, vga_switcheroo is the name of the kernel feature that can control it. You would then need to have a driver for the Nvidia GPU installed (either the free nouveau or Nvidia's proprietary driver; since the Nvidia GPU model is pretty new, the support for it in nouveau is still very much work-in-progress), then trigger the switch to Nvidia before starting up the X server.

If there is no output switching capability (known as "muxless Optimus"), then you would need to pass the rendered image from the active GPU to the other one in order to use all the outputs. With the drivers (and any required firmware) for both the GPUs installed, the xrandr --listproviders should list two providers instead of one, and then you could use xrandr --setprovideroutputsource <other GPU> <active GPU> to make the outputs of the other GPU available for the active GPU.

Unfortunately, the Nvidia proprietary driver seems to be able to participate in this sharing only in the role of the active GPU, so when using that driver, you might want to keep two different X server configurations to be used as appropriate.

One configuration would be for using with external displays (and probably with power adapter plugged in too) with the Nvidia GPU as the active one, feeding data through the iGPU for the laptop's internal display

The other configuration would be appropriate when using battery power and don't need maximum GPU performance: in this configuration, you would use the Intel iGPU as the active one, and might want to entirely shut down the Nvidia GPU to save power (achievable with the bumblebee package). If you want some select programs to have more GPU performance, you could use the primus package to use the Nvidia GPU with no physical screen attached to render graphics, and then pass the results to the Intel iGPU for display.

With Kubuntu, you probably were asked about using proprietary drivers on installation and answered "yes", so it probably set up one of the configurations described above for you. But Debian tends to be more strict about principles of Open Source software, so using proprietary drivers is not quite so seamless.

Generally, the combination of the stable release of Debian (currently Buster) and the latest-and-greatest Nvidia GPU tends not to be the easy way to happy results, because the Debian-packaged versions of Nvidia's proprietary drivers tend to lag behind Nvidia's own releases: currently the driver version in the non-free section of Debian 10 is 418.116, and the minimum version required to support GeForce GTX 1650 Mobile seems to be 430.

However, the buster-backports repository has version 440 available. To use it, you'll need to add the backports repository to your APT configuration. In short, add this line to /etc/apt/sources.list file:

deb http://deb.debian.org/debian buster-backports non-free

Then run apt-get update as root. Now your regular package management tools should have the backports repository available, and you could use

apt-get -t buster-backports install nvidia-driver

to install a new enough version of the Nvidia proprietary driver to support your GPU.

3
  • Very informative, thank you! My external display is now functioning. Apr 17 '20 at 17:20
  • Could you please elaborate, did you do anything else besides installing nvidia-driver from backports? I'm in a similar installation, but after installing I still only have my laptop's internal display in xrandr... Nov 24 '20 at 21:59
  • If anything stumbles upon this: I gave up and set in my bios to prefer the nvidia card over the integrated card, which enables hdmi out of the box. Let's hope this magically fixes itself in debian 11... Nov 25 '20 at 8:28
0

Try running xrandr --auto.

This will enable connected but disabled outputs using their first preferred mode

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.