顺便说一句,我同时面对着同样的问题。还希望使用Xvfb和VNC运行无头服务器,而不是在RPi上。我发现执行以下步骤的有效解决方案...
apt-get install lubuntu-core xvfb x11vnc
我发现lightdm.conf的所有配置选项都记录在/usr/share/doc/lightdm/lightdm.conf.gz中。因此,通过发出以下命令来了解它们。
zcat /usr/share/doc/lightdm/lightdm.conf.gz
显然,正如您所报告的,lightdm尝试实例化其自己的X服务器并传递Xvfb无法处理的一些参数。解决此问题的第一步是在lightdm的配置文件/etc/lightdm/lightdm.conf中添加一行“ xserver-command”(默认为xserver-command = X)。
[SeatDefaults]
greeter-session=lightdm-gtk-greeter
user-session=Lubuntu
xserver-command=/etc/X11/xinit/xserverrc
之后,我修改了/ etc / X11 / xinit / xserverrc以便启动Xvfb而不是真正的X服务器(请注意,我注释掉了将命令行参数传递给X的原始X exec行)。添加一条执行Xvfb的执行行足以使lightdm与Xvfb一起工作。
#!/bin/sh
#exec /usr/bin/X -nolisten tcp "$@"
exec Xvfb :0 -screen 0 1024x768x24
在我看来,这似乎是一种将lightdm X命令包装在(L)Ubuntu默认安装中已经存在的合适包装脚本中的便捷方法。
最后,我在进入系统后使用VNC,转发VNC端口并使用VNC客户端连接到本地主机上的转发端口(在我的情况下为Mac OS屏幕共享)。
ssh -L 5900:localhost:5900 user@machine 'x11vnc -localhost -display :0 -many'