Übrigens hatte ich zur gleichen Zeit das gleiche Problem. Wollte auch einen Headless-Server mit Xvfb und VNC betreiben, allerdings nicht mit RPi. Ich habe eine funktionierende Lösung gefunden, die folgende Schritte ausführt ...
apt-get install lubuntu-core xvfb x11vnc
Ich habe herausgefunden, dass alle Konfigurationsoptionen von lightdm.conf in /usr/share/doc/lightdm/lightdm.conf.gz dokumentiert sind. Schauen Sie sich diese an, indem Sie den folgenden Befehl ausgeben.
zcat /usr/share/doc/lightdm/lightdm.conf.gz
Wie Sie bereits berichtet haben, versucht lightdm, seinen eigenen X-Server zu instanziieren und übergibt einige Argumente, mit denen Xvfb nicht umgehen kann. Um dies zu umgehen, fügen Sie der Konfigurationsdatei /etc/lightdm/lightdm.conf von lightdm eine Zeile 'xserver-command' hinzu (standardmäßig xserver-command = X).
[SeatDefaults] greeter-session=lightdm-gtk-greeter user-session=Lubuntu xserver-command=/etc/X11/xinit/xserverrc
Danach habe ich / etc / X11 / xinit / xserverrc geändert, um Xvfb anstelle eines echten X-Servers zu starten (beachten Sie, dass ich die ursprüngliche X-Exec-Zeile, die die Befehlszeilenargumente an X übergibt, auskommentiert). Wenn Sie stattdessen eine Exec-Zeile hinzufügen, die Xvfb ausführt, genügt es, dass lightdm mit Xvfb funktioniert.
#!/bin/sh #exec /usr/bin/X -nolisten tcp "$@" exec Xvfb :0 -screen 0 1024x768x24
Dies scheint mir eine bequeme Methode zu sein, den lightdm X-Befehl in ein geeignetes Wrapper-Skript einzubinden, das bereits in der (L) Ubuntu-Standardinstallation vorhanden ist.
Schließlich verwende ich VNC nach dem ssh'ing in das System, leite den VNC-Port weiter und verbinde mich mit dem weitergeleiteten Port auf localhost mit einem VNC-Client (in meinem Fall Bildschirmfreigabe für Mac OS).
ssh -L 5900:localhost:5900 user@machine 'x11vnc -localhost -display :0 -many'