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

12,367

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
Share:
12,367

Related videos on Youtube

marek
Author by

marek

Updated on September 18, 2022

Comments

  • marek
    marek over 1 year

    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 1920x1200 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
    
    • ubfan1
      ubfan1 about 7 years
      In your BIOS/UEFI settings, did you try setting the video to discrete only instead of integrated or hybrid?
    • marek
      marek about 7 years
      Unfortunatelly I haven't found any option to choose the video in my BIOS. As for my UEFI - it is omited on boot... my laptop originally had Windows system with Windows bootup UEFI, and the only option to start Ubuntu that I managed was to start with legacy BIOS. When I reactivate UEFI, it tells me to recover WIndows. It all means I cannot choose or switch on/off my graphic units on boot. I can only choose it after logging in to Ubuntu, and then I don't really have any problem doing so - both the integrated Intel graphics and the NVIDIA unit works well after I restart.
    • marek
      marek about 7 years
      I'm not an expert, but IMO the experimeint I've put above as UPDATE suggests, that the Dell monitor is actually capable of working together with my laptop. Only once it goes into some nasty sleep mode, the laptop cannot wake it up or even detect it. What would be nice, is a low level terminal command, which would force a wakeup signal sent on the HDMI port, so that the monitor would wake up and could be communicated with. Do you know of any such low-level display commands / signals being available from Ubuntu terminal?
    • marek
      marek about 7 years
      When I switch to Windows, it is able to wake up the monitor and use it even during the start of the system. So I would say Windows is sending such wakeup / turn-on signal, which is missing on Ubuntu boot up, so I would love to be able to send it myself afterwards... if this diagnose would be correct by any chance.
    • marek
      marek about 7 years
      Recently I connected this Dell laptop to a ASUS PB328Q monitor HDMI port. I've been testing this setup both on Ubuntu 14.04 and Ubuntu 16.10. The symptoms were quite the same as in case of the Dell 2709W monitor described above: System Settings/Displays/Detect Displays didn't detect any external monitor, it only showed the Build-in Display.
    • marek
      marek about 7 years
      I am confident that hardware part is not an issue here - the HDMI cable I use, the HDMI laptop port and the monitor can communicate and the monitor got detected instantly by Windows 10. I need and want to use Ubuntu though - any help is appreciated.
  • marek
    marek almost 7 years
    Thank you very much for your answer. You will find it hard to believe, but after a few months, many evenings spend trying, I still didn't get it working. As a result, I have quite a powerful machine which I cannot use for my work, instead I am using an old Mac, because that one can handle the secondary Screen. Quite resigned on this situation.
  • marek
    marek almost 7 years
    My current version if kernel is 4.8.0. I use nvidia-375 driver. I tried to connect several HDMI newly bought 32" screens - one ASUS, one BENQ, and one AOC, with native resolutions of 2560x1440 - none detected on Ubuntu (no problem on Windows). I installed several other versions of nvidia driver, kernels, Ubuntu versions, clean installs, even tried Mint - all for nothing. I went trough hundreds of similar problems on this and other forums, tried all proposed solutions, nothing worked for me. I really cannot understand how it can be working for anybody else (sooner or later), just not for me.
  • marek
    marek almost 7 years
    I tried a hdmi to dvi dongle too, hoping that it will run on DVI which I am using currently with my Mac - it did not do the trick.
  • marek
    marek almost 7 years
    I am not sure about the sound support in my external monitor - it does not have any speakers, so it cannot generate any sound by itself, but it has some sound output, probably directing the sound received through HDMI/DP (if it worked).
  • ChanganAuto
    ChanganAuto over 2 years
    Virtualization support has nothing to do with a monitor being detected or not.