Ubuntu – External HDMI display on Ubuntu 16.04, NVIDIA GeForce GTX 960M

16.04driversgraphicsmultiple-monitorsnvidia

My Dell Inspiron 7566 laptop with Ubuntu 16.04 can't detect external monitor Dell W2709 connected to HDMI port.

I tried:

  • booting with the display connected,
  • connecting display after login,
  • disconnecting and connecting again
  • System settings/Displays/Detect Displays

Nothing works, the display stays in power save mode, which is it's usual behavior when getting no signal. And the laptop doesn't realize the display is connected to HDMI.

On Windows partition the same display connected with the same HDMI cable connected to the same HDMI port got recognized right away, so the hardware is ok.

Graphic units on board: NVIDIA GeForce GTX 960M + Intel HD Graphics 530.
NVIDIA X Server Settings claim both work fine. It doesn't detect any external display though.

I found several suggestions for similar problems, generally falling into two categories: update the kernel or/and try different graphic drivers.

I tried do both. As for kernel, I believe my initial one which came with Ubuntu 16.04 was 4.4.0 or so. I went up trying several versions, including 4.4.8, 4.8.1, 4.8.17 and I ended up on the fresh 4.9.9.

As for graphic drivers, I've bee trying several tutorials, and at some point I ended up with this collection:
enter image description here

I tried all of those drivers, and I believe those are the newest ones NVIDIA offers. Fortunatelly nothing got broken with all those attempts, but unfortunatelly the problem is still not resolved.

I've been trying to use xrandr too, I found that "HDMI-1-1 disconnected".
Adding an new resolution 1920×1200 for my external display and trying to force it with arandr ended up with unusable unity on my primary laptop display, fortunatelly it recovered with a reboot.

I will appreciate any suggestions, yet other drivers to try, or maybe other more exotic step-by-step instructions. I got this laptop expecially for my work, and I need to have the external display for it badly. Thanks!

UPDATE: I found a way to get the external monitor DELL 2709W working with my Ubuntu. However peculiar and non-usable it is, it may be a hint to find a real solution:

  • This method requires another laptop(!) connected to another port of the display. In my case it is a MacBookPro with an adapter, connected to one of DVI ports. This is to keep the display on – it has to actually display anything on screen.
  • Using Dell monitor controls, I disabled the DDC/CI mode
  • Using Dell monitor controls, I select the DVI port, so I can see the other system displayedr
  • I boot up Ubuntu while it is connected with the Dell monitor with HDMI cable, and I log in to unity
  • Now when I open System Settings/Displays, I can see the secondary display 'Dell Inc. 27"'
  • Using the Dell monitor controls I switch to HDMI, and voila – I can see the extended desktop
  • Only when I let the Ubuntu laptop fall asleep for a minute, or worse – turn it off, the extended desktop is gone and I have to do the whole procedure again to get it back. Hence – it's not a way to work.. but maybe it's a hint to any display/graphics hardware expert, how I could better deal with it?

This is the xrandr report with the HDMI cable plugged in to the laptop and HDMI port of the monitor, and the HDMI source selected for the monitor (and the monitor sleeps):

$ xrandr --verbose
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (0x46) normal (normal) 344mm x 193mm
Identifier: 0x42
Timestamp:  20511
Subpixel:   unknown
Gamma:      1.0:1.0:1.0
Brightness: 1.0
Clones:    
CRTC:       0
CRTCs:      0 1 2
Transform:  1.000000 0.000000 0.000000
            0.000000 1.000000 0.000000
            0.000000 0.000000 1.000000
           filter: 
EDID: 
    00ffffffffffff000daec41500000000
    2b1901049522137802ef059054529329
    25505400000001010101010101010101
    0101010101015e358096703814402c1c
    240058c11000001ab22a809670381440
    2c1c240058c11000001a000000fe0038
    4b563432003135364847450a00000000
    0000413196000000000a010a20200021
scaling mode: Full aspect 
    supported: None, Full, Center, Full aspect
Broadcast RGB: Automatic 
    supported: Automatic, Full, Limited 16:235
audio: auto 
    supported: force-dvi, off, auto, on
1920x1080 (0x46) 136.620MHz +HSync -VSync *current +preferred
    h: width  1920 start 1964 end 1992 total 2070 skew    0 clock  66.00KHz
    v: height 1080 start 1082 end 1086 total 1100           clock  60.00Hz
1920x1080 (0x47) 138.500MHz +HSync -VSync
    h: width  1920 start 1968 end 2000 total 2080 skew    0 clock  66.59KHz
    v: height 1080 start 1083 end 1088 total 1111           clock  59.93Hz
1920x1080 (0x48) 109.300MHz +HSync -VSync
    h: width  1920 start 1964 end 1992 total 2070 skew    0 clock  52.80KHz
    v: height 1080 start 1082 end 1086 total 1100           clock  48.00Hz
1680x1050 (0x49) 146.250MHz -HSync +VSync
    h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
    v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz
1680x1050 (0x4a) 119.000MHz +HSync -VSync
    h: width  1680 start 1728 end 1760 total 1840 skew    0 clock  64.67KHz
    v: height 1050 start 1053 end 1059 total 1080           clock  59.88Hz
1600x1024 (0x4b) 103.125MHz +HSync +VSync
    h: width  1600 start 1600 end 1656 total 1664 skew    0 clock  61.97KHz
    v: height 1024 start 1024 end 1029 total 1030           clock  60.17Hz
1400x1050 (0x4c) 122.000MHz +HSync +VSync
    h: width  1400 start 1488 end 1640 total 1880 skew    0 clock  64.89KHz
    v: height 1050 start 1052 end 1064 total 1082           clock  59.98Hz
1280x1024 (0x4d) 108.000MHz +HSync +VSync
    h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
    v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
1440x900 (0x4e) 106.500MHz -HSync +VSync
    h: width  1440 start 1520 end 1672 total 1904 skew    0 clock  55.93KHz
    v: height  900 start  903 end  909 total  934           clock  59.89Hz
1280x960 (0x4f) 108.000MHz +HSync +VSync
    h: width  1280 start 1376 end 1488 total 1800 skew    0 clock  60.00KHz
    v: height  960 start  961 end  964 total 1000           clock  60.00Hz
1360x768 (0x50) 84.750MHz -HSync +VSync
    h: width  1360 start 1432 end 1568 total 1776 skew    0 clock  47.72KHz
    v: height  768 start  771 end  781 total  798           clock  59.80Hz
1360x768 (0x51) 72.000MHz +HSync -VSync
    h: width  1360 start 1408 end 1440 total 1520 skew    0 clock  47.37KHz
    v: height  768 start  771 end  781 total  790           clock  59.96Hz
1152x864 (0x52) 81.620MHz -HSync +VSync
    h: width  1152 start 1216 end 1336 total 1520 skew    0 clock  53.70KHz
    v: height  864 start  865 end  868 total  895           clock  60.00Hz
1024x768 (0x53) 133.475MHz -HSync +VSync DoubleScan
    h: width  1024 start 1100 end 1212 total 1400 skew    0 clock  95.34KHz
    v: height  768 start  768 end  770 total  794           clock  60.04Hz
1024x768 (0x54) 65.000MHz -HSync -VSync
    h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
    v: height  768 start  771 end  777 total  806           clock  60.00Hz
960x720 (0x55) 117.000MHz -HSync +VSync DoubleScan
    h: width   960 start 1024 end 1128 total 1300 skew    0 clock  90.00KHz
    v: height  720 start  720 end  722 total  750           clock  60.00Hz
928x696 (0x56) 109.150MHz -HSync +VSync DoubleScan
    h: width   928 start  976 end 1088 total 1264 skew    0 clock  86.35KHz
    v: height  696 start  696 end  698 total  719           clock  60.05Hz
896x672 (0x57) 102.400MHz -HSync +VSync DoubleScan
    h: width   896 start  960 end 1060 total 1224 skew    0 clock  83.66KHz
    v: height  672 start  672 end  674 total  697           clock  60.01Hz
960x600 (0x58) 77.000MHz +HSync -VSync DoubleScan
    h: width   960 start  984 end 1000 total 1040 skew    0 clock  74.04KHz
    v: height  600 start  601 end  604 total  617           clock  60.00Hz
960x540 (0x59) 69.250MHz +HSync -VSync DoubleScan
    h: width   960 start  984 end 1000 total 1040 skew    0 clock  66.59KHz
    v: height  540 start  541 end  544 total  555           clock  59.99Hz
800x600 (0x5a) 81.000MHz +HSync +VSync DoubleScan
    h: width   800 start  832 end  928 total 1080 skew    0 clock  75.00KHz
    v: height  600 start  600 end  602 total  625           clock  60.00Hz
800x600 (0x5b) 40.000MHz +HSync +VSync
    h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
    v: height  600 start  601 end  605 total  628           clock  60.32Hz
800x600 (0x5c) 36.000MHz +HSync +VSync
    h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
    v: height  600 start  601 end  603 total  625           clock  56.25Hz
840x525 (0x5d) 73.125MHz -HSync +VSync DoubleScan
    h: width   840 start  892 end  980 total 1120 skew    0 clock  65.29KHz
    v: height  525 start  526 end  529 total  544           clock  60.01Hz
840x525 (0x5e) 59.500MHz +HSync -VSync DoubleScan
    h: width   840 start  864 end  880 total  920 skew    0 clock  64.67KHz
    v: height  525 start  526 end  529 total  540           clock  59.88Hz
800x512 (0x5f) 51.562MHz +HSync +VSync DoubleScan
    h: width   800 start  800 end  828 total  832 skew    0 clock  61.97KHz
    v: height  512 start  512 end  514 total  515           clock  60.17Hz
700x525 (0x60) 61.000MHz +HSync +VSync DoubleScan
    h: width   700 start  744 end  820 total  940 skew    0 clock  64.89KHz
    v: height  525 start  526 end  532 total  541           clock  59.98Hz
640x512 (0x61) 54.000MHz +HSync +VSync DoubleScan
    h: width   640 start  664 end  720 total  844 skew    0 clock  63.98KHz
    v: height  512 start  512 end  514 total  533           clock  60.02Hz
720x450 (0x62) 53.250MHz -HSync +VSync DoubleScan
    h: width   720 start  760 end  836 total  952 skew    0 clock  55.93KHz
    v: height  450 start  451 end  454 total  467           clock  59.89Hz
640x480 (0x63) 54.000MHz +HSync +VSync DoubleScan
    h: width   640 start  688 end  744 total  900 skew    0 clock  60.00KHz
    v: height  480 start  480 end  482 total  500           clock  60.00Hz
640x480 (0x64) 25.175MHz -HSync -VSync
    h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
    v: height  480 start  490 end  492 total  525           clock  59.94Hz
680x384 (0x65) 42.375MHz -HSync +VSync DoubleScan
    h: width   680 start  716 end  784 total  888 skew    0 clock  47.72KHz
    v: height  384 start  385 end  390 total  399           clock  59.80Hz
680x384 (0x66) 36.000MHz +HSync -VSync DoubleScan
    h: width   680 start  704 end  720 total  760 skew    0 clock  47.37KHz
    v: height  384 start  385 end  390 total  395           clock  59.96Hz
576x432 (0x67) 40.810MHz -HSync +VSync DoubleScan
    h: width   576 start  608 end  668 total  760 skew    0 clock  53.70KHz
    v: height  432 start  432 end  434 total  447           clock  60.06Hz
512x384 (0x68) 32.500MHz -HSync -VSync DoubleScan
    h: width   512 start  524 end  592 total  672 skew    0 clock  48.36KHz
    v: height  384 start  385 end  388 total  403           clock  60.00Hz
400x300 (0x69) 20.000MHz +HSync +VSync DoubleScan
    h: width   400 start  420 end  484 total  528 skew    0 clock  37.88KHz
    v: height  300 start  300 end  302 total  314           clock  60.32Hz
400x300 (0x6a) 18.000MHz +HSync +VSync DoubleScan
    h: width   400 start  412 end  448 total  512 skew    0 clock  35.16KHz
    v: height  300 start  300 end  301 total  312           clock  56.34Hz
320x240 (0x6b) 12.587MHz -HSync -VSync DoubleScan
    h: width   320 start  328 end  376 total  400 skew    0 clock  31.47KHz
    v: height  240 start  245 end  246 total  262           clock  60.05Hz
DP-1 disconnected (normal)
Identifier: 0x43
Timestamp:  20511
Subpixel:   unknown
Clones:     HDMI-1
CRTCs:      0 1 2
Transform:  1.000000 0.000000 0.000000
            0.000000 1.000000 0.000000
            0.000000 0.000000 1.000000
           filter: 
Broadcast RGB: Automatic 
    supported: Automatic, Full, Limited 16:235
audio: auto 
    supported: force-dvi, off, auto, on
HDMI-1 disconnected (normal)
Identifier: 0x44
Timestamp:  20511
Subpixel:   unknown
Clones:     DP-1
CRTCs:      0 1 2
Transform:  1.000000 0.000000 0.000000
            0.000000 1.000000 0.000000
            0.000000 0.000000 1.000000
           filter: 
aspect ratio: Automatic 
    supported: Automatic, 4:3, 16:9
Broadcast RGB: Automatic 
    supported: Automatic, Full, Limited 16:235
audio: auto 
    supported: force-dvi, off, auto, on

Best Answer

I had exactly the same problem with a Laptop HP Pavillion and a GEFORCE GTX 960M. I had problems with the HDMI with both a TV and a beamer.

I finally solved it by installing the latest version of the open source drivers (nvidia-390 at the time of this post).

These steps should do the job: first clean up any eventual mess that there might be by doing

apt-get purge nvidia*

and then you can do the actual installation

add-apt-repository ppa:graphics-drivers/pp
apt update
apt-get install nvidia-387

After rebooting in principle you should obtain a non empty output to

lsmod | grep nvidia

but in my case it was empty and that was why it wasn't working. At the boot Linux wasn't loading the relevant modules. This was UEFI secure boot's fault. Apparently the secure boot didn't like the open source drivers and blocked them from being loaded. This can be fixed by going to the BIOS and disabling it (see here for a more thorough explanation https://askubuntu.com/a/762255).

If it still doesn't work you can try to look for these two possible issues:

  1. Some other drivers are not blacklisted, e.g. nouveau (https://askubuntu.com/a/951892)
  2. The file /etc/X11/xorg.conf isn't there. If so generate it with nvidia-xconfig
Related Question