问题
I'd like to access my Ubuntu 16.10 VPS (Contabo) with using a GNOME environment with VNC, however I am still facing some issues that I couldn't solve so far. To install and configure the software I ran the following commands:
sudo apt-get install ubuntu-gnome-desktop
sudo apt-get install tightvncserver xtightvncviewer tightvnc-java
sudo locale-gen de_DE.UTF-8
sudo apt-get install xfonts-75dpi
sudo apt-get install xfonts-100dpi
sudo apt-get install gnome-panel
sudo apt-get install metacity
sudo apt-get install light-themes
touch ~/.Xresources
vncpasswd
File ~/.vnc/xstartup initially contains the following lines:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
When I start the VNC server using vncserver -geometry 1920x1200
everything looks fine according to the log file in ~/.vnc
17/02/17 11:47:48 Xvnc version TightVNC-1.3.10
17/02/17 11:47:48 Copyright (C) 2000-2009 TightVNC Group
17/02/17 11:47:48 Copyright (C) 1999 AT&T Laboratories Cambridge
17/02/17 11:47:48 All Rights Reserved.
17/02/17 11:47:48 See http://www.tightvnc.com/ for information on TightVNC
17/02/17 11:47:48 Desktop name 'X' (host:1)
17/02/17 11:47:48 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
17/02/17 11:47:48 Listening for VNC connections on TCP port 5901
17/02/17 11:47:48 Listening for HTTP connections on TCP port 5801
I can successfully connect from my Windows PC via VNCViewer and see a grey window.
Now, what is not clear to me, is what I have to change in ~/.vnc/xstartup to get Gnome running. I have tried many different settings.
E.g. when I change xstartup to
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
#gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
and connect via VNC, I get the following error messages in the vnc log file:
17/02/17 14:13:09 Xvnc version TightVNC-1.3.10
17/02/17 14:13:09 Copyright (C) 2000-2009 TightVNC Group
17/02/17 14:13:09 Copyright (C) 1999 AT&T Laboratories Cambridge
17/02/17 14:13:09 All Rights Reserved.
17/02/17 14:13:09 See http://www.tightvnc.com/ for information on TightVNC
17/02/17 14:13:09 Desktop name 'X' (host:1)
17/02/17 14:13:09 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
17/02/17 14:13:09 Listening for VNC connections on TCP port 5901
17/02/17 14:13:09 Listening for HTTP connections on TCP port 5801
17/02/17 14:13:09 URL http://5801
(nautilus:7807): Gtk-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
metacity-Message: could not find XKB extension.
Window manager warning: Missing composite extension required for compositing
(gnome-settings-daemon:7805): rfkill-plugin-WARNING **: Could not open RFKILL control device, please verify your installation
** (gnome-panel:7804): WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
(nautilus:7807): Gtk-WARNING **: Theme parsing error: <broken file>:1:0: Failed to import: The resource at '/org/gnome/libgd/tagged-entry/default.css' does not exist
Xlib: extension "XInputExtension" missing on display ":1".
Xlib: extension "XInputExtension" missing on display ":1".
Xlib: extension "XInputExtension" missing on display ":1".
Xlib: extension "XInputExtension" missing on display ":1".
Xlib: extension "XInputExtension" missing on display ":1".
Xlib: extension "XInputExtension" missing on display ":1".
(gnome-settings-daemon:7805): media-keys-plugin-WARNING **: Unable to inhibit keypresses: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Permission denied
** (gnome-settings-daemon:7805): WARNING **: Unable to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
** (process:7845): WARNING **: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
(gnome-settings-daemon:7805): GLib-GIO-CRITICAL **: g_task_return_error: assertion 'error != NULL' failed
Xlib: extension "XInputExtension" missing on display ":1".
Xlib: extension "XInputExtension" missing on display ":1".
(gnome-settings-daemon:7805): sharing-plugin-WARNING **: Failed to StopUnit service: GDBus.Error:org.freedesktop.systemd1.NoSuchUnit: Unit rygel.service not loaded.
Xlib: extension "XInputExtension" missing on display ":1".
(gnome-panel:7804): Gtk-WARNING **: Allocating size to PanelToplevel 0x55e8b9e1fba0 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Xlib: extension "XInputExtension" missing on display ":1".
Nautilus-Share-Message: Called "net usershare info" but it failed: Failed to execute child process "net" (No such file or directory)
Xlib: extension "XInputExtension" missing on display ":1".
And this is what I can see with VNCViewer:
Until now I wasn't able to fix the issues in the log file. Thank you very much for your help.
UPDATE 1
If I adapt ~/.vnc/xstartup according to UPDATE 2 of muktupavels answer my log file looks like this when I connect via vncviewer:
21/02/17 08:51:52 Xvnc version TightVNC-1.3.10
21/02/17 08:51:52 Copyright (C) 2000-2009 TightVNC Group
21/02/17 08:51:52 Copyright (C) 1999 AT&T Laboratories Cambridge
21/02/17 08:51:52 All Rights Reserved.
21/02/17 08:51:52 See http://www.tightvnc.com/ for information on TightVNC
21/02/17 08:51:52 Desktop name 'X' (host:1)
21/02/17 08:51:52 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
21/02/17 08:51:52 Listening for VNC connections on TCP port 5901
21/02/17 08:51:52 Listening for HTTP connections on TCP port 5801
21/02/17 08:51:52 URL http://host:5801
21/02/17 08:51:58 Got connection from client xxx
21/02/17 08:51:58 Using protocol version 3.8
21/02/17 08:52:03 Full-control authentication passed by xxx
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 16
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 22
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 21
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 15
21/02/17 08:52:04 Using zlib encoding for client xxx
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding -314
21/02/17 08:52:04 Enabling full-color cursor updates for client xxx
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding -223
21/02/17 08:52:04 Pixel format for client xxx:
21/02/17 08:52:04 8 bpp, depth 8
21/02/17 08:52:04 uses a colour map (not true colour).
21/02/17 08:52:04 Using raw encoding for client xxx
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 22
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 21
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 16
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 15
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding -314
21/02/17 08:52:04 Enabling full-color cursor updates for client 141.83.54.107
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding -223
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 15
21/02/17 08:52:04 Using hextile encoding for client xxx
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 22
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 21
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding 16
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding -314
21/02/17 08:52:04 Enabling full-color cursor updates for client 141.83.54.107
21/02/17 08:52:04 rfbProcessClientNormalMessage: ignoring unknown encoding -223
21/02/17 08:52:04 Pixel format for client xxx:
21/02/17 08:52:04 32 bpp, depth 24, little endian
21/02/17 08:52:04 true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
21/02/17 08:52:04 no translation needed
21/02/17 08:52:08 KbdAddEvent: unknown KeySym 0xffeb - allocating KeyCode 89
This a screenshot of the GUI:
Now the clock etc. is visible on the top panel. However, the desktop is still grey and right mouse click doesn't work.
Also some applications such as GNOME Terminal didn't start at first. When I tried to start Terminal using xterm I got the following error message:
Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Failed to activate service 'org.gnome.Terminal': timed out
After executing the following commands and a reboot the GNOME Terminal and all the other programs work:
sudo locale-gen
sudo localectl set-locale LANG="en_US.UTF-8"
sudo reboot
UPDATE 3
Added --debug
parameter to gnome-session
cmd in ~/.vnc/xstartup
. After restart of vncserver I got the following message in ~/.xsession-errors
:
Xsession: X session started for <user> at Di 21. Feb 08:35:01 CET 2017
dbus-update-activation-environment: setting DISPLAY=:1
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 109 (X_ChangeHosts)
Value in failed request: 0x5
Serial number of failed request: 6
Current serial number in output stream: 8
localuser:<user> being added to access control list
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 109 (X_ChangeHosts)
Value in failed request: 0x5
Serial number of failed request: 6
Current serial number in output stream: 8
openConnection: connect: No such file or directory
cannot connect to braille devices daemon brltty at :0
Incompatible XKB server support
dbus-update-activation-environment: setting GTK_MODULES=gail:atk-bridge
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
dbus-update-activation-environment: setting QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
Error: couldn't find RGB GLX visual or fbconfig
OpenGL version not found.
dbus-update-activation-environment: setting LESSOPEN=| /usr/bin/lesspipe %s
dbus-update-activation-environment: setting VNCDESKTOP=X
dbus-update-activation-environment: setting MAIL=/var/mail/<user>
dbus-update-activation-environment: setting SSH_CLIENT=xx.xxx.xx.xx 54876 22
dbus-update-activation-environment: setting USER=<user>
dbus-update-activation-environment: setting LANGUAGE=en_US:
dbus-update-activation-environment: setting LC_TIME=de_DE.UTF-8
dbus-update-activation-environment: setting SHLVL=1
dbus-update-activation-environment: setting HOME=/home/<user>
dbus-update-activation-environment: setting OLDPWD=/home/<user>/.vnc
dbus-update-activation-environment: setting SSH_TTY=/dev/pts/0
dbus-update-activation-environment: setting GTK_MODULES=gail:atk-bridge
dbus-update-activation-environment: setting QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
dbus-update-activation-environment: setting LC_MONETARY=de_DE.UTF-8
dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-x72bVPIADb,guid=db78e03690370c91adb4424458abeda5
dbus-update-activation-environment: setting IM_CONFIG_PHASE=1
dbus-update-activation-environment: setting LOGNAME=<user>
dbus-update-activation-environment: setting _=/usr/bin/vncserver
dbus-update-activation-environment: setting TERM=xterm
dbus-update-activation-environment: setting PATH=/home/<user>/bin:/home/<user>/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
dbus-update-activation-environment: setting LC_ADDRESS=de_DE.UTF-8
dbus-update-activation-environment: setting XDG_RUNTIME_DIR=/run/user/1000
dbus-update-activation-environment: setting DISPLAY=:1
dbus-update-activation-environment: setting LC_TELEPHONE=de_DE.UTF-8
dbus-update-activation-environment: setting LANG=en_US
dbus-update-activation-environment: setting XKL_XMODMAP_DISABLE=1
dbus-update-activation-environment: setting LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
dbus-update-activation-environment: setting SHELL=/bin/bash
dbus-update-activation-environment: setting SHELL=/bin/bash
dbus-update-activation-environment: setting LC_NAME=de_DE.UTF-8
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
dbus-update-activation-environment: setting LESSCLOSE=/usr/bin/lesspipe %s %s
dbus-update-activation-environment: setting LC_MEASUREMENT=de_DE.UTF-8
dbus-update-activation-environment: setting LC_IDENTIFICATION=de_DE.UTF-8
dbus-update-activation-environment: setting PWD=/home/<user>
dbus-update-activation-environment: setting SSH_CONNECTION=xx.xxx.xx.xx 54876 xx.xxx.xx.xx 22
dbus-update-activation-environment: setting XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
dbus-update-activation-environment: setting LC_NUMERIC=de_DE.UTF-8
dbus-update-activation-environment: setting LC_PAPER=de_DE.UTF-8
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
回答1:
Your vnc log file tells you about problem. You need to install few packages:sudo apt-get install metacity gnome-panel
UPDATE 1:
You need only x-window-manager
or metacity
. Both provides window manager and you need only one. From screenshot I see only two problems - grey screen and missing indicators.
To fix missing indicators install one more package:sudo apt-get install indicator-applet-complete
To fix grey screen you need --force-desktop
commandline option. And if you don't want default nautilus window you can add --no-default-window
:nautilus --force-desktop &
or nautilus --force-desktop --no-default-window
Also GNOME Flashback (Metacity)
session in Ubuntu 16.10 use unity-settings-daemon
not gnome-settings-daemon
. Don't forget to install it if you decide to change that.
To get better working desktop you also need to exports:
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
If you decided to use unity-settings-daemon
then XDG_CURRENT_DESKTOP
should be GNOME-Flashback:Unity
.
In both cases you also need gnome-flashback
. Install it and make sure it also started. Depending on settings daemon you might need to adjust / change GSettings. Defaults are configurated for unity-settings-daemon
.
UPDATE 2:
I would probably let gnome-session to start session:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:Unity"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
And to install required packages just do sudo apt-get install gnome-session-flashback
UPDATE 3:
Looks like nautilus does not show desktop icons and background, because desktop icons are disabled.
You can enable it with gsettings set org.gnome.desktop.background show-desktop-icons true
or by installing ubuntu-settings
.
回答2:
For security reasons, X11 has disabled indirect GLX rendering by default. This change has finally made it into the mainstream Linux flavors. To enable IGLX, edit the Xorg file and add the “+iglx” flag. Then reboot the machine.
sudo vi /usr/bin/Xorg
basedir=/usr/lib/xorg
if [ -x "$basedir"/Xorg.wrap ]; then
exec "$basedir"/Xorg.wrap "$@"
else
exec "$basedir"/Xorg "$@" +iglx
fi
回答3:
I had the same problem. I followed all these instructions... except debug and the VNC started working. I use my Ubuntu system as a headless system and 99% of the time use VNC.
I performed a BIOS update and reboot today and experienced the same problem again. I know I already installed everything but the one thing that got this to work was running these commands again:
sudo locale-gen
sudo localectl set-locale LANG="en_US.UTF-8"
vncserver -kill :1
vncserver
Opened VNC Viewer and connected without a problem.
来源:https://stackoverflow.com/questions/42296329/how-to-properly-configure-xstartup-file-for-tightvnc-with-ubuntu-vps-gnome-envir