在没有连接显示器的情况下无法启动 x11vnc

在没有连接显示器的情况下无法启动 x11vnc

我想设置x11vnc(或任何其他 vnc 服务器)在启动时启动。显示管理器是kdm,发行版是 Ubuntu 12.04.2 LTS。

当我尝试启动 x11vnc 时,出现以下错误:

$ x11vnc -rfbauth /var/run/xauth/A:0-crWk72  -rfbport 5901
 passing arg to libvncserver: -rfbauth
 passing arg to libvncserver: /var/run/xauth/A:0-crWk72
 passing arg to libvncserver: -rfbport
 passing arg to libvncserver: 5901
 x11vnc version: 0.9.12 lastmod: 2010-09-09  pid: 2828
 XOpenDisplay("") failed.
 Trying again with XAUTHLOCALHOSTNAME=localhost ...

 *** XOpenDisplay failed. No -display or DISPLAY.
 *** Trying ":0" in 4 seconds.  Press Ctrl-C to abort.
 *** 1 2 3 4 
 XOpenDisplay(":0") failed.
 Trying again with XAUTHLOCALHOSTNAME=localhost ...
 XOpenDisplay(":0") failed.
 Trying again with unset XAUTHLOCALHOSTNAME ...

我尝试安装xserver-xorg-video-dummy以避免未连接屏幕的问题,但到目前为止没有成功。

答案1

我想出了以下解决方案:

  1. sudo apt-get install x11vnc xserver-xorg-video-dummy
  2. 检查/etc/default/grub它是否包含nomodeset标志:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

  3. 根据您的设置创建(或修改)/etc/X11/xorg.conf、修改USER和寻址。LISTEN

Section "Monitor"
Identifier "Monitor0"
HorizSync 28.0-80.0
VertRefresh 48.0-75.0
# 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
Modeline "1680x1050_60.00" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
EndSection

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

Section "Screen"
DefaultDepth 24
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
    SubSection "Display"
    Depth 24
    Modes "1680x1050"    
    EndSubSection
EndSection

你可以生成您自己的分辨率

4 - 创建服务脚本/etc/init.d/vncserver

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Default-Start:     3 4 5
# Default-Stop:      0 6
### END INIT INFO

PATH="$PATH:/usr/X11R6/bin/" CMD="/usr/bin/x11vnc"

# The Username:Group that will run VNC 
export USER="your_username"

# The display that VNC will use DISPLAY="1"

# Color depth (between 8 and 32) DEPTH="16"

# The Desktop geometry to use.
#GEOMETRY="<WIDTH>x<HEIGHT>"
#GEOMETRY="800x600" GEOMETRY="1680x1050"
#GEOMETRY="1280x1024"

# The name that the VNC Desktop will have. NAME="my-vnc-server"

PORT=5900 
LISTEN="192.168.1.10"


OPTIONS="-xkb -noxrecord -noxfixes -noxdamage -listen ${LISTEN} -name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -auth guess
-usepw ~/.vnc/passwd -rfbport ${PORT} -forever -bg -oa /var/log/x11vnc.log"

. /lib/lsb/init-functions

case "$1" in start) echo ${OPTIONS} log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}" su ${USER} -c "${CMD} ${OPTIONS}" ;;

stop) log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}" su ${USER} -c "${CMD} -kill :${DISPLAY}" ;;

restart) $0 stop $0 start ;; esac

exit 0

答案2

以下内容总是能让我快速建立一个有效的 vnc 会话:

apt-get install vnc4server x11-xserver-utils xserver-xorg-video-dummy xterm wm2

我添加了 x11-xserver-utils 和 xserver-xorg-video-dummy,以防您的系统上尚未安装 X11 并且您希望避免完整安装 X11。然而,这一点很可能与您的情况无关,只是添加它以防其他人发现它有用。

我添加了 xterm 和 wm2,以防您想要一个简单的设置,而不是一个完整的 gnome 会话或类似的会话。如果是这种情况,则在您的用户帐户下运行 vnc4server 以自动创建 ~/.vnc/xstartup。然后杀死它并编辑 ~/.vnc/xstartup 并将以下两行添加到底部。

x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
wm2 &

并再次运行 vnc4server。

否则,只需在您自己的帐户下运行 vnc4server 就足够了。第一次启动时,vncserver 会要求您创建密码,使用该密码从远程系统进行连接。

在远程系统上安装 xtightvncviewer 之类的东西并使用它连接到您的 vnc 服务器:

apt-get install xtightvncviewer
xtightvncviewer 192.0.2.1:1   [1]

1 - 参见http://www.iana.org/go/rfc5737关于为什么在文档中使用此 IP 范围

相关内容