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
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
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
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
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é