Skip to content

Instantly share code, notes, and snippets.

@TitjyDev
Created May 16, 2025 13:43
Show Gist options
  • Save TitjyDev/72d452dba1d4a02d2ff76718c295de8c to your computer and use it in GitHub Desktop.
Save TitjyDev/72d452dba1d4a02d2ff76718c295de8c to your computer and use it in GitHub Desktop.
Ubuntu VNC sans écran attaché

Résolution du problème d'écran noir sur un server VNC installé sur Ubuntu

Testé par moi-même sur Ubuntu version 25.04.

Reporté comme fonctionnant également sur Unbuntu 22.04 et versions ultérieurs.


Note : Ce qui suit vous aidera si vous arriver à vous connecter sans problème à votre server VNC avec écran attaché depuis un client VNC mais que l'écran du client VNC affiche une fenêtre noir, grise ou blanche si l'écran n'est plus attaché. Si vous n'êtes pas dans cette situation, votre problème pourrais provenir d'autre chose et la manipulation suivante pourrait ne pas vous concerner. La manipulation suivante permet de simuler un écran sur le port HDMI de la machine hébergeant le server VNC qui se retrouve sans écran physiquement attaché. Si finalement vous décidez d'y attacher un écran, la simulation de lécran sur le port HDMI ne sera pas effectuée avant d'éviter un conflit.

Disclaimer : La solution est fournie telle qu'elle. Vous êtes responsable de toutes modifications apportée à votre système, ainsi que d'éventuels problèmes pouvant survenir sur votre machine après avoir effectué l'installation ci-dessous.

Cette solution provient de : https://gist.github.com/dragolabs/8e559113567faed32327ef24fdce775b?permalink_comment_id=5532522#gistcomment-5532522

Etape 1

apt install xserver-xorg-video-dummy
nano /etc/X11/xorg.conf.d/10-headless.conf

Contenu à insérer dans le fichier 10-headless.conf :

Section "Monitor"
    Identifier  "VirtualMonitor"
    HorizSync   30.0-62.0
    VertRefresh 50.0-70.0
    Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection

Section "Device"
    Identifier  "VirtualCard"
    Driver      "dummy"
    VideoRam    256000
EndSection

Section "Screen"
    Identifier  "VirtualScreen"
    Device      "VirtualCard"
    Monitor     "VirtualMonitor"
    DefaultDepth 24
    SubSection "Display"
        Depth   24
        Modes   "1920x1080"
    EndSubSection
EndSection

Etape 2

vim /etc/systemd/system/vnc-display.service

Contenu à insérer dans le fichier vnc-display.service :

[Unit]
Description=Configure VNC dummy screen
After=systemd-user-sessions.service

[Service]
ExecStart=/usr/local/bin/vnc-display.sh

[Install]
WantedBy=multi-user.target

Etape 3

nano /usr/local/bin/vnc-display.sh

Contenu à insérer dans le fichier vnc-display.sh :

#!/bin/bash
# Check connected displays
HDMI_STATUS=`cat /sys/class/drm/card1-HDMI-A-1/status`
if [ $HDMI_STATUS = "connected" ]
then
  # If yes, disable the dummy driver configuration by renaming the file
  sudo mv /etc/X11/xorg.conf.d/10-headless.conf /etc/X11/xorg.conf.d/10-headless.conf.bak
else
  # If no, enable the dummy driver configuration by restoring the file
  sudo mv /etc/X11/xorg.conf.d/10-headless.conf.bak /etc/X11/xorg.conf.d/10-headless.conf
  sudo X :0 -config /etc/X11/xorg.conf.d/10-headless.conf &
fi

Etape 4

sudo chmod +x /usr/local/bin/vnc-display.sh
systemctl daemon-reload
systemctl enable vnc-display.service
sudo reboot

Désormais vous devriez pouvoir vous connecter à distance à votre server VNC depuis votre client VNC sans constater de problème d'écran noir, gris ou blanc que ce soit avec ou sans écran attaché

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment