Display issues when connecting to RealVNC Server running on Linux

Follow

In some circumstances, your Linux remote computer will not display correctly in RealVNC Viewer. The commonly reported issues are:

  • a black or blank screen
  • application windows are white
  • slow refresh of images

The issue is most commonly seen when connecting to a computer with Wayland enabled, no monitors attached (headless), or a monitor using HDMI/DisplayPort is connected but powered off.

It appears that in the above situations, Linux does not correctly report graphical updates to be captured by RealVNC Server. At this time, there are some known workarounds you can try below:

  1. If you are running RealVNC Server on Ubuntu 18.04 LTS or later, or CentOS/RHEL 8 or later, you need to disable Wayland
  2. Change your Power settings on the Linux computer to never turn off the monitors/displays
  3. Check that Linux is not set to a "Battery Saver" power mode
  4. Connect an EDID emulator to the RealVNC Server computer. An example EDID emulator can be seen here
    Note: RealVNC have not tested this particular emulator and it is only provided as an example
  5. Change the RealVNC Server CaptureMethod parameter:
    • On the remote Linux computer, open the RealVNC Server dialog.
    • Select Options from the hamburger menu.
    • On the Expert tab, filter the list for CaptureMethod, and set the value to 1

      This can also be specified using a configuration file: /root/.vnc/config.d/vncserver-x11
  6. Install the X11 dummy driver as the system's default driver, by following the below steps.

    Please note that by following these steps, any monitors connected to the computer running RealVNC Server will display a blank screen.

    If you need to use a monitor, either use one of the other workarounds above, or ensure SSH is enabled and run

    sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.dummy && sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf && sudo reboot

    when you need to use the connected monitor(s).

    1. Install the dummy driver package using the appropriate command for your version of Linux:
      sudo apt update && sudo apt install xserver-xorg-video-dummy # Ubuntu
      sudo yum install xorg-x11-drv-dummy # Redhat / CentOS
    2. Copy RealVNC Server's dummy driver configuration to be used by the system:
      sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak # this file may not exist so if there is an error, it can be ignored
      sudo cp /etc/X11/vncserver-virtual-dummy.conf /etc/X11/xorg.conf
    3. Reboot the machine. You should now be able to connect as expected.
      • Note: This method is using the X11 dummy driver, so some graphical features may not be available. If you want your own driver to work, you will have to research what changes are needed and make your own xorg.conf
Was this article helpful?
25 out of 74 found this helpful

Comments

0 comments

Article is closed for comments.