VNC with virtual display - black screen when I connect
I have a Ubuntu machine that I use as a Plex and data server. There is no monitor connected to it. This wasn't a problem with Ubuntu 16.04, but now, with 18.04, it is and it shows a black screen whenever I connect using VNC.
I've already created the virtual display using the answer to this question: Add virtual output to Xorg
Create a
20-intel.conf
file:sudo vi /usr/share/X11/xorg.conf.d/20-intel.conf
Add the following configuration information into the file:
Section "Device" Identifier "intelgpu0" Driver "intel" Option "VirtualHeads" "2" EndSection
This tells the Intel GPU to create 2 virtual displays. You can change the number of VirtualHeads to your needs.
Then I made a shell script (don't forget to set executable) and put that in Startup Applications:
#! /bin/bash
/usr/bin/xrandr -d :0 --output VIRTUAL1 --primary --auto
/usr/bin/xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900$
/usr/bin/xrandr --addmode VIRTUAL1 "1600x900_60.00"
After this, it still shows a black screen when I connect using VNC. BUT, when I run this with SSH:
export DISPLAY=:0
xrandr
After that, I can see my desktop in VNC... Any ideas on how to fix this? Also, when I see my desktop after all this, the dock is missing and all the icons are in the same spot.
I added /usr/bin/xrandr
to the end of the script:
#! /bin/bash
/usr/bin/xrandr -d :0 --output VIRTUAL1 --primary --auto
/usr/bin/xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900$
/usr/bin/xrandr --addmode VIRTUAL1 "1600x900_60.00"
/usr/bin/xrandr
That way, VIRTUAL1
is set as output and connected. At boot, a new mode (found using cvt 1600 900
) is being created and appointed to VIRTUAL1
.
Only issue with this is: dock is missing at reboot... Haven't solved that yet.