• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

VNC-Server (über sax2) zeigt verzerrtes Bild

TobiasE

Newbie
Hallo!

Ich versuche gerade einen VNC-Server auf meinem Suse 10.1 einzurichten. Ich habe mir dieses Howto angesehen und mich für Version 7 (über sax2) entschieden.

Der Server läuft nun und ich kann darauf zugreifen. Jedoch liefert er ein total verzertes, unvollständiges Bild auf dem client und die Position des Mauszeigers stimmt auch nicht überein.

Woran kann das liegen?


Ich hatte vorher schon selber rumprobiert und dabei "vncserver" ausgeführt (als user, nicht alss root). Dort wurde ich zur Eingabe eines Passwortes aufgefordert und er hat eine config Datei oder so erstellt. Vll hängt es ja damit zusammen. Was genau habe ich mit dem Aufruf von "vncserver" getan und wie mache ich das gegebenfalls rückgängig?


Ich hoffe ihr könnt mir weiterhelfen.

//Edit:

Hier noch Screenshos dazu

So sieht der Desktop aus:
screen-real.png


Uns so über VNC:
screen-client.png


Gruß Tobias[/img]
 
OP
T

TobiasE

Newbie
Hat denn keiner eine Idee woran das liegen könnte?
Bin langsam echt am verzweifeln. Der VNC-Server ist mir sehr wichtig und ich muss ihn irgenwie zum laufen bekommen!

Ich bin für jeden Tipp dankbar!
 
OP
T

TobiasE

Newbie
Ich habe jetzt mal versucht den VNC-Server über Gnome laufen zu lassen. Da funktioniert er einwandfrei aber leider erfüllt dieser nicht wirklich den Zweck für den er gedacht ist.
Würde ich den Gnome-VNC-Server verwenden müsste ein User dauerhaft lokal in gnome angemeldet sein. Ich sollte den Rechner aber eigneltich in runlevel 3 betreiben und nur in 5 wechseln wenn ich mich über VNC verbinden will. Das funktioniert mit dem Gnome-VNC-Server leider nicht, da dieser ja erst startet nachdem man sich lokal bei gnome angemeldet hat :(

Irgenwie muss ich den Server über sax2 zum laufen bekommen...

Kann man eventuell die config von dem gnome-VNC für den sax2-VNC übernehmen? bzw. wo finde ich die beiden config files?

Gruß Tobias
 

rolle

Guru
Wenn der Server dauerhaft in Runlevelk 3 laufen soll, bist Du mit keiner Variante gut bedient, die einen laufenden X-Server voraussetzt. Baue Dir doch einfach ein Initscript nach folgender Anleitung: http://www.linux-club.de/faq/VNC-Server_per_Initscript_starten
 
OP
T

TobiasE

Newbie
Ich glaub das mit dem init-script basteln bekomm ich als Linux-Einsteiger nicht so einfach hin. Ich hätte jetzt 0 Ahnung was ich jetzt wie auf mein System anpassen muss :?
 

rolle

Guru
Dann erkläre doch mal, was genau Du denn erreichen möchtest. Welche und wieviele Nutzerinnen sollen auf den Rechner zugreifen können und sollen die dann jeweils eine eigene Oberfläche bekommen?
 
OP
T

TobiasE

Newbie
Also der Rechner, um den es geht, der soll als Server laufen. (bisher NFS,SAMBA,aMule,Apache)

Anfangs hatte ich geplant das der Rechner dauerthaft in Runlevel 5 läuft weil ich der Meinung war Amule läuft nur mit GUI.
Nun hab ich es aber hinbekommen das aMule auch in Runlevel 3 läuft, somit ist das hinfällig.

Das heißt ich brauche den VNC-Server (und auch den x-server) jetzt eigenlich nur noch wenn ich Yast etc. ran muss. Ja, ich weiß alles was man mit Yast machen kann geht auch auf der Konsole aber als Neuling möchte ich auf das GUI erstmal nicht ganz verzichten.

Nach allem was ich bisher gelesen habe wär die Konfiguration über sax2 die einfachste, weil ich dann bei bedarf einfach in runlevel 5 wechseln könnte und automatisch x-server und VNC server gestartet würden und der PC über VNC errreichbar wäre. Aber ich befürchte das Problem mit dem verzerrten Bild lässt sich nicht so einfach beheben, also muss wohl eine andere Lösung her...
 

rolle

Guru
Fein, für Deine Zwecke taugt also das Initscript hervorrragend (auch wenn es YaST auch für die Konsole gibt). Lade es herunter, entpacke es und kopiere es als root nach /etc/init.d/. Dann mache ein 'insserv vncserver'. Sodann überlegst Du Dir, was für einen Desktop Du haben möchtest. Ich gehe jetzt mal von KDE aus.
In Zeile 59 des Initscripts änderst Du das Wort 'openbox' in 'kde'. Dann startest Du als root 'vncserver' und vergibst dabei ein Passwort. Danach änderst Du die /root/.vnc/xstartup so ab, daß sie wie in der Anleitung ausschaut. Danach starte einfach mal den Server neu, danach müßtest Du auf Display :20 einen VNC-Server laufen haben.
 
OP
T

TobiasE

Newbie
Ich habe Gnome als GUI instlliert.

ich nehm mal an, da muss ich dann "openbox" in "gnome" ändern?!

muss ich sonst noch irgendwas anpassen an dem script? (z.b. zeile 18 wo was von KDE steht?)
 

rolle

Guru
Das müßte auch so klappen. Ja, Du mußt in Deinem Fall openbox durch gnome ersetzen und in der xstartup 'kde' durch 'gnome' und 'startkde' durch 'gnome'.
 
OP
T

TobiasE

Newbie
Hab eigentlich alles so gemacht aber funzt noch nicht :(

vncserver editiert und nach /etc/init.d kopiert:
Code:
#! /bin/sh
#
#Author: Toni
#
#/etc/init.d/vncserver this Script
#/usr/sbin/rcvncserver Root-Link to this Script
#/usr/X11R6/bin/vncserver Program

### BEGIN INIT INFO
# Provides:          vncserver für root
# Required-Start:    $syslog $remote_fs
# Required-Stop:     $syslog $remote_fs
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Description:       Start vncserver for remote control
### END INIT INFO

#test -r /etc/rc.config && ./etc/rc.config
export PATH=$PATH:/usr/X11R6/bin:/opt/kde3/bin

#Check for missing binaries
FOO_BIN=/usr/X11R6/bin/vncserver
test -x $FOO_BIN || exit 5

#Set HOME of Root-User
HOME="/root"
export HOME
USER="root"
export USER

# Set ID for Connections (Displaynumber)
FOO_ID=20

# First reset status of this service
. /etc/rc.status
rc_reset

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running

case "$1" in
start)
echo -n "Starting vnc-Server with Terminal-ID $FOO_ID "
# Delete old PIDs
rm -f $HOME/.vnc/$Hostname:$FOO_ID.pid 2> /dev/null
rm -f /tmp/.X11-unix/X$FOO_ID 2> /dev/null
if [ -e $HOME/.vnc/$HOSTNAME:$FOO_ID.log ]; then
cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log
fi
#$FOO_BIN -depth 16 -name kde :FOO_ID 2>&1
$FOO_BIN -depth 16 -name gnome :$FOO_ID 2>&1
rc_status -v6
;;

stop)
echo -n "Shutting down vnc-Server "
$FOO_BIN -kill :$FOO_ID 2>&1
cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1
rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log
rc_status -v2
;;

restart)
$0 stop
$0 start
rc_status
;;

status)
echo -n "Checking for service vnc-Server on Terminal-ID $FOO_ID: "
##Check status with checkproc, if process is running
##checkproc will return with exit status 0.
#Return value is slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
# NOTE: checkproc returns LSB compliant sastus values.
/sbin/checkproc $FOO_BIN
rc_status -v
;;

*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;

esac
rc_exit

insser vncserver

"vncserver" gestartet und password festgelegt

/root/.vnc/xstartup editiert:
Code:
#!/bin/sh
export LANG="de_DE"
case "$VNCDESKTOP" in
gnome)
gnome &
;;
xfce)
startxfce4 &
;;
*)
xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
;;
esac

/etc/init.d/vncserver restart

server:20 nicht erreichbar.

logfile:
Code:
08/10/2006 14:49:11 Xvnc version XF4VNC-4.4.0.0
08/10/2006 14:49:11 Copyright (C) 2001-2004 Alan Hourihane.
08/10/2006 14:49:11 Copyright (C) 2000-2004 Constantin Kaplinsky
08/10/2006 14:49:11 Copyright (C) 1999 AT&T Laboratories Cambridge
08/10/2006 14:49:11 All Rights Reserved.
08/10/2006 14:49:11 See http://www.tightvnc.com/ for information on TightVNC
08/10/2006 14:49:11 See http://xf4vnc.sf.net for xf4vnc-specific information
08/10/2006 14:49:11 Desktop name 'gnome' (linuxserver:20)
08/10/2006 14:49:11 Protocol versions supported: 3.7, 3.3
08/10/2006 14:49:11 RGB format 5 6 5
08/10/2006 14:49:11 Listening for VNC connections on TCP port 5920
08/10/2006 14:49:11 Listening for HTTP connections on TCP port 5820
08/10/2006 14:49:11   URL http://linuxserver:5820
Could not init font path element /usr/X11R6/lib/X11/fonts/local, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/CID, removing from list!
SESSION_MANAGER=local/linuxserver:/tmp/.ICE-unix/6562
Window manager warning: Log level 32: could not find XKB extension.
Initializing nautilus-open-terminal extension
Initializing nautilus-share extension
You can not run beagle as root.  Beagle is designed to run from your own
user account.  If you want to create multiuser or system-wide indexes, use
the beagle-build-index tool.

You can override this setting using the beagle-config or beagle-settings tools.

(gnome-panel:6588): libgnomevfs-CRITICAL **: gnome_vfs_uri_new_private: assertion `text_uri != NULL' failed

(<unknown>:6588): Wnck-CRITICAL **: wnck_screen_get_windows: assertion `WNCK_IS_SCREEN (screen)' failed

(<unknown>:6588): Wnck-CRITICAL **: wnck_screen_get_active_window: assertion `WNCK_IS_SCREEN (screen)' failed

(<unknown>:6588): GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: assertion `dest_width > 0' failed

(<unknown>:6588): GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: assertion `dest_width > 0' failed

hoffe dir sagt das mehr als mir ;)
 

rolle

Guru
Hm, das scheint jetzt irgendein Gnomeproblem zu sein. Du könntest ja mal spaßeshalber testen, ob ein anderer Windowmanager, der FVWM müßte eigentlich mindestens installiert sein, funktioniert.
Der Logfile jedenfalls sagt aus, daß der VNC-Server startet, es jedoch ein Problem mit dem Windowmanager gibt.
 
OP
T

TobiasE

Newbie
welchen windowmanager nehm ich dafür bzw. wie finde ich raus welcher window-manger installiert ist und bei einer lokalen gnome-anmeldung verwendet wird?
 
OP
T

TobiasE

Newbie
hab ich gemacht und es kommen wieder nen haufen fehlermeldungen in der log-datei.

allerdings habe ich grad in der log gelesen das der server auf port 5920 lauscht... der ist nicht offen :oops: sowas dummes :shock:
könnte eventuell ja schon das problem beim 1. versuch gewesen sein?!

muss ich den ganzen spass nochmal mit offenem port machen...

der pc läuft atm ohne monitor etc.
weißt du wie ich die firewall über die konsole temporär ganz ausschaltet bzw. wie ich da den port auf bekomme?
ansonsten muss ich ihn morgen nochmal hier rüber holen und die firewall deaktivieren bzw. den port auf machen aber da hab ich heute keinen nerv mehr zu.
 

rolle

Guru
Mit Gewalt, also die Firewall komplett öffnen: rcSuSEfirewall2 stop.
Du kannst aber auch einfach als root in der Konsole 'yast' eingeben und die Firewall dann darin konfigurieren.
Oder, falls Du schon einen Port offen haben solltest, nehmen wir mal an 5901, dann kannst Du im Initscript 'FOO_ID' von 20 auf 1 ändern. FOO_ID gibt die Displaynummer an, auf der der Server startet.
 
OP
T

TobiasE

Newbie
So, es läuft jetzt endlich! Vielen Dank für deine Hilfe! :)

Sowohl mit fvwm2 als auch mit Gnome funzt es nun. Lag alles nur an dem Port. :roll: Ich wusste leider nicht das bei Display 20 auch der Port auf 5920 geändert wird.
Naja auf jeden Fall hab ich jetzt Gnome auf Display 0 laufen und es funktioniert soweit ich das bis jetzt beurteilen kann alles bestens.

Trotzdem hab ich noch 2 Fragen ;)

1. Beendet "/etc/init.d/vncserver stop" nur den VNC-Server selbst oder wird auch alles was zum darstellen der GUI (x-server, gnome) benötigt wurde gekillt? Also läuft nach dem Stoppen des Scripts noch was weiter was unnütz Ressourcen frisst?

2. Wenn ich mich über VNC verbinde bekomme ich ja automatisch den Root-Desktop. Ließe es sich realisieren, das nach dem verbinden auf den Server erstmal der Login-Bildschirm kommt?
(ist nicht so wichtig aber wär ganz brauchbar, falls sich das einfach machen lässt)
 

rolle

Guru
Zu 1: Wenn Du den VNC-Server killst, stirbt auch alles, was darin läuft, es gibt von daher also keine Leichen.
Zu 2: Um zu einem normalen Loginbildschirm zu kommen, solltest Du den VNC-Server per xinetd starten. Auch dazu gibt es eine Anleitung in dem Howto aus Deinem ersten Posting. Ich ging jetzt eben mal davon aus, daß Du den Server nur verwalten wolltest, dazu brauchst Du den Loginbildschirm nicht.
 
Oben