我想设置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
我想出了以下解决方案:
sudo apt-get install x11vnc xserver-xorg-video-dummy
检查
/etc/default/grub
它是否包含nomodeset
标志:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
根据您的设置创建(或修改)
/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 范围