I found a workaround for a similar problem. After boot, or X restart, one of my monitors goes into powersave, the other works fine. If I switch to a text only console (ctrl-alt-f1) the screen will turn on and work correctly. When I switch back to X (ctrl-alt-f7), my display will stay on. I think it is a frequency sync issue.
You don't need to reboot your computer to fix it. A better way to deal with it is using xrandr
, which is the tool to manage the output of your displays.
First, run simply xrandr
to get a list of all displays currently connected and their respective names (their connection). In possession of that information, you can run a simple command to 'reactivate' the secondary display and place it in the correct location. It would be something like:
xrandr --output SECONDARYDISPLAY --auto --right-of PRIMARYDISPLAY
You want to replace both the displays with the actual name you got from your xrandr. It is usually things like HDMI-A-0
, DisplayPort-0
, DVI-D-0
, etc... If you connect the display to the left side of your main display, you also want to change the --right-of
. Xrandr has many other options you might want to use, like setting offset, refresh rate, etc. For more, take a look at the man page.
In your case, since you are using two external displays, you might also want to set the primary display with xrandr, in case running simply the first command doesn't work. You can then combine both with something like:
xrandr --output PRIMARYDISPLAY --auto --primary && xrandr --output SECONDARYDISPLAY --auto --right-of PRIMARYDISPLAY
If you are satisfied with the results of the commands, you might want to add them to a shortcut, if you feel that is faster than running them from the command line. You might also want to add them to a script that is run on resume and placing it over at /usr/lib/pm-utils/sleep.d/
.
Keep in mind that this issue might go away of it's own in the future. There are plenty of reports of similar issues, but the underlying cases can be very different. If you believe your case is very persistent, you could try opening a bug report. I personally used to have this problem a couple months ago, but it 'fixed itself', and I haven't had it ever since. I found that using: ctrl+alt+t (open terminal) typing 'xr' followed by 'UP' and 'ENTER' (this way my terminal would connect to the last used command that started with xr) was a good solution for me, specially because I also turn my secondary display off with xrandr from time to time.
Best Answer
Sounds like a problem with your Nvidia drivers. Nvidia drivers (especially ones downloaded from Nvidia website) are notorious for wreaking havoc on your GPU-enabled laptops. Have you checked your System settings -> Software & Updates -> Additional drivers? How many drivers do you see there? There should be Nvidia drivers (atleast one) and possibly an X-server Nouveau (open source).
1) If not try running
sudo apt-get install xorg xserver-xorg; sudo dpkg-reconfigure xorg
orsudo apt-get install xserver-xorg-video-nouveau
This should install the Nouveau. Try switching it to that driver in the Additional drivers menu and restart and see if that solves the problem.2) If you have older Nvidia drivers try installing new version:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update && sudo apt install nvidia-<number>
. Thenumber
I have is 390, but you can try 380, 387 etc.3) Switching to Nvidia driver can cause you to run into a login loop in which case you need to press
Ctrl+Alt+F1
at login screen, and type:sudo apt-get purge nvidia-*
andsudo dpkg-reconfigure lightdm
andsudo reboot -i
to switch back to nouveau and get back to your desktop