Help requested: VNC display corruption after gdm restart
Posted: Mon Jul 25, 2005 11:57 pm
Hi,
Firstly let me say that the whole X11, VNC (server, client) thing confuses the heck out of me. So with that said...
Has anybody else noticed that restarting gdm causes VNC's display to corrupt?
(Yes, I know you loose the connection, but I'm talking about the image when you reconnect).
FYI, my setup: xbox v1.4, _headless_, with Home 4.0 [=>using VNC & ssh], XFCE4
After restarting gdm, clicking on the desktop causes coloured dots to appear on the background image (which is never refreshed). Also, the kvkbd (graphical keyboard) is shown only as a black rectangle.
Logging in via VNC (to XFCE4) works, but leads eventually to unusable display as images overlay each other and are not erased, leading to visual confusion. This happens with VNC ports 0 & 5800 (java web version).
Why restart 'gdm'? Well I'm experimenting with runlevels, and rc subsystem. I've commented out the lines in /etc/conf.d/local.start which startup gdm, and created the (hopefully) equivalent as /etc/init.d/x11 (see below).
Using my script, I can start and stop gdm via the console (via a ssh login), at will. The script appears to start and stop gdm correctly [well no 'gdm' process survives a shutdown]. I've added it to the default runlevel with... and after a fresh boot "x11" starts, and VNC access is fine.
However issuing /etc/init.d/x11 stop, then /etc/init.d/x11 start causes the problem to become apparent!
What am I missing?
Is the problem is that gdm is a display manager and not the X server?!?
Is there a VNC process that need to be killed, too?
I assume that my VNC protocol settings are fine, since they work OK with a freshly booted xbox.
Comments, please. And constructive criticism of the script
FYI, here is my script
Firstly let me say that the whole X11, VNC (server, client) thing confuses the heck out of me. So with that said...
Has anybody else noticed that restarting gdm causes VNC's display to corrupt?
(Yes, I know you loose the connection, but I'm talking about the image when you reconnect).
FYI, my setup: xbox v1.4, _headless_, with Home 4.0 [=>using VNC & ssh], XFCE4
After restarting gdm, clicking on the desktop causes coloured dots to appear on the background image (which is never refreshed). Also, the kvkbd (graphical keyboard) is shown only as a black rectangle.
Logging in via VNC (to XFCE4) works, but leads eventually to unusable display as images overlay each other and are not erased, leading to visual confusion. This happens with VNC ports 0 & 5800 (java web version).
Why restart 'gdm'? Well I'm experimenting with runlevels, and rc subsystem. I've commented out the lines in /etc/conf.d/local.start which startup gdm, and created the (hopefully) equivalent as /etc/init.d/x11 (see below).
Using my script, I can start and stop gdm via the console (via a ssh login), at will. The script appears to start and stop gdm correctly [well no 'gdm' process survives a shutdown]. I've added it to the default runlevel with
Code: Select all
rc-update add x11 default
However issuing /etc/init.d/x11 stop, then /etc/init.d/x11 start causes the problem to become apparent!
What am I missing?
Is the problem is that gdm is a display manager and not the X server?!?
Is there a VNC process that need to be killed, too?
I assume that my VNC protocol settings are fine, since they work OK with a freshly booted xbox.
Comments, please. And constructive criticism of the script
FYI, here is my script
Code: Select all
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Startup/Shutdown script for gdm (X11) on GentooX
# [Xbox port of Gentoo by ShALLaX -- http://gentoox.shallax.com]
# /etc/init.d/x11 -- not under source control. v0.1 Krazy 050725
depend() {
use logger clock hostname
provide x11
}
start() {
ebegin "Starting x11"
start-stop-daemon --start --quiet --exec /usr/bin/gdm
/usr/bin/pgrep -x -u 0 -P 1 gdm > /var/run/gdm.pid
eend $?
}
stop() {
ebegin "Stopping x11"
start-stop-daemon --stop --quiet --pidfile /var/run/gdm.pid \
--exec /usr/bin/gdm
eend $?
}