Linux – Dual Monitors in Linux Mint 18 Not working

driversgraphics cardlinuxlinux-mintmultiple-monitors

I am very new to Linux and I'm having issues getting dual monitors to work in Linux Mint 18. I know that others have had issues with dual monitors and Linux, and I've scoured the forums and tried enough things that I broke the Cinnamon desktop at one point and it's only by luck that I managed to get back to the initial conditions.

I run Linux Mint 18 with a Nvidia GeForce GTX 950 graphics card. If I look in the Driver Manager, I can see that I'm running the driver 367.57-0ubuntu0.16.4.01. My main monitor is plugged in via a DVI cable and works great. If I plug a second monitor into the VGA port, I lose all my display settings and the second monitor never shows any input. I try to click on the Display application and it opens for a second and then closes. If I check the NVidia Server Settings application and hit 'Detect Displays', nothing happens. Only unplugging the VGA cable and restarting can return my main display settings.

I read that this could be an issue with the Nvidia drivers, so I tried:

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-current nvidia-settings

This broke the Nvidia server settings. Restarting my computer, it defaulted to using the nouveau driver. My dual monitors worked perfectly in this setting, but I was no longer using my Nvidia GPU. I tried opening Nvidia Server Settings to switch the GPU from Intel to Nvidia and received the following error:

ERROR: Error querying target relations

** Message: PRIME: No offloading required. Abort
** Message: PRIME: is it supported? no

ERROR: nvidia-settings could not find the registry key file. This file should
   have been installed along with this driver at either
   /usr/share/nvidia/nvidia-application-profiles-331.38-key-documentation
   or /usr/share/nvidia/nvidia-application-profiles-key-documentation. The
   application profiles will continue to work, but values cannot be
   preopulated or validated, and will not be listed in the help text.
   Please see the README for possible values and descriptions.

Googling this error led me down a rabbit hole of fixes where I tried

sudo apt-get purge nvidia*

and then installing the driver manually by blacklisting nouveau, downloading the Nvidia driver myself, and then using the virtual console to install the driver:

sudo stop service mdm
sudo sh N-357.57.run
sudo start service mdm

or something like that. Unfortunately, when I restarted after this, Cinnamon broke and would only work in 'Fallback Mode', at which point I uninstalled the driver from the virtual console

sudo sh N-357.57.run --uninstall

and started up in nouveau. I reinstalled the Nvidia driver from the device manager and, somehow beyond all odds, managed to get my system back to its original state. The driver is installed and functioning:

$ inxi -xG                                                 [0/0]
Graphics:  Card-1: Intel Sky Lake Integrated Graphics bus-ID: 00:02.0
           Card-2: NVIDIA GM206 [GeForce GTX 950] bus-ID: 01:00.0
           Display Server: X.Org 1.18.3 driver: nvidia
           Resolution: 1920x1080@60.00hz
           GLX Renderer: GeForce GTX 950/PCIe/SSE2
           GLX Version: 4.5.0 NVIDIA 367.57 Direct Rendering: Yes

but I'm back to a situation where plugging in a VGA monitor loses my display settings, won't open the display app, and won't detect the second display.

Can anyone offer me any guidance? As I said, I'm new to Linux and, after this experience, I think I might be over typing in random commands I found online after Googling this problem. That led to bad things.

UPDATE

Here is the xrandr output with both monitors connected. It looks as though it sees them both but for some reason I can't get the 'display' app to open, nothing ever shows on the second monitor, and Nvidia Settings won't detect a second screen.

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 connected
   1920x1080     60.00 +
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1152x864      75.00  
   1280x720      60.00  
   1024x768      75.08    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    60.00  
   720x400       70.08  
DVI-D-0 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+0+0 531mm x 299mm
   1920x1080     60.00*+
   1600x1200     60.00  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1152x864      75.00  
   1024x768      75.08    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    60.00  
   720x400       70.08  
HDMI-2 disconnected

Best Answer

The output of xrandr shows that two screens are detected, one called DP-1, the other one called HDMI-1. Of course I do not know which one is which, so you will have to try either of these two commands:

 xrandr --output DP-1 --auto --right-of HDMI-1
 xrandr --output HDMI-1 --auto --right-of DP-1

One of them ought to turn the silent screen on. If the screen goes black, shutdown, then on reboot try the other command.

Related Question