Raspberry Pi: VNC bei Raspbian einrichten Teil 1

By January 10, 2014Klinisch Klar, Technologie, Tipps
codeclinic_blog_header

Raspberry Pi: VNC bei Raspbian einrichten Teil 1

Ein Raspberry Pi ist ein toller, preiswerter PC, der für seine kleine Grösse sehr leistungsstark ist. Deswegen ist es so gut für viele verschiedene Projekte geeignet.
Es ist jedoch nicht einfach, zutreffende und vollständige Informationen darüber zu finden. In der Code Clinic haben wir viel Zeit darin investiert einen funktionierenden VNC Server einzurichten, damit wir das Pi “headerless” – also ohne eine angeschlossene Tastatur oder Maus – nutzen können.

Wir haben viele Lernprogramme angesehen und unzählige Foren abgeklappert, um dafür zu sorgen, dass VNC funktioniert – alles erfolglos.

Und jetzt, wo wir ein gutes und verlässliches Set-Up laufen haben, wollten wir gerne unser Wissen mit anderen teilen.

Den richtigen VNC Server auswählen

Es gibt verschiedene Software Projekte die VNC unterstützen. Aber welches das passende für Deine Bedürfnisse ist hängt davon ab, was Du über VNC machen willst und, letztendlich, von Deinem Pi.

Wenn Du mit genau dem gleichen Desktop arbeiten musst, der auf dem an das Pi angeschlossenen Monitor angezeigt wird, kann es sein, dass Du Dich schwer tun wirst zutreffende Anleitungen dafür zu finden. Glücklicherweise haben wir genau so eine Anleitung zusammengestellt.

Solltest Du einfach eine Verbindung zum Pi benötigen, um allgemeine Aufgaben auszuführen und das alles völlig “headerless”, dann empfehlen wir TightVNC zu nutzen, da dies eine kostenlose Open Source Software ist und durch Kompression auch auf langsameren Netzwerken (Internet) gut funktioniert, und es ist einfach in den Softwarequellen verfügbar. Ausserdem, scheint es von allen das verlässlichste zu sein. Um TightVNC zu installieren, musst Du nur hier weiterlesen.

Ein Client Server Modell

VNC entspricht einem traditionellen Client Server Modell. Die Server Software laeuft auf dem Pi und Zugriff erfolgt dort. Die Client Software läuft auf dem Computer der den Hostrechner kontrollieren soll. Der Server und der Client müssen nicht ein und derselbe Computer sein (z.B. kann der Client RealVNC sein obwohl der Server Tight VNC ist), aber einige Eigenschaften funktionieren eventuell nur dann wenn der gleiche Client und Server genutzt werden.

Die TightVNC Server Software Installieren

Zuerst die Software Repository Information auffrischen und zwar so:

sudo apt-get update && apt-get upgrade

 

So werden die Repository Daten aktualisiert und entsprechende, bereits installierte Software erhalten einen Upgrade. Das ist besonders dann wichtig, wenn Du gerade erst das Operating System installiert hast, da die Repository Information nicht vollständig sein kann.

Als nächstes müssen wir TightVNC von den Repositories installieren:

sudo apt-get install tightvncserver

 

Den VNC Server starten und ein Passwort konfigurieren

Bei erster Nutzung des Servers wird von Dir verlangt ein Passwort zu erstellen. Dies ist das Passwort zur Remote Verbindung.

/usr/bin/tightvncserver

 

Es ist nicht nötig ein “view only” Passwort zu erstellen, es sei denn Du hast einen bestimmten Grund dafür. Sobald der Server startet wird Dir mitgeteilt welcher virtueller Desktop eingerichtet wurde. Hier war es:

  • New ‘X’ desktop is raspberrypi:1

Der Anhang macht kenntlich, dass es der Virtuelle Desktop 1 ist. Um eine Verbindung herzustellen fügst Du :1 am Ende der IP Adresse im Client hinzu, oder die entsprechende Port Nummer 5901. Wir werden das später noch detaillierter erklären.
Du kannst dies mehrfach machen. Jedesmal wenn tightvncserver gestartet wird, nutzt es den als nächstes verfügbaren Desktop, aber im Normalfall brauchst Du nur einen.

Tightvnc zum Startup hinzufügen

Meistens willst Du wahrscheinlich dass der VNC Server automatisch beim Boot up des Pi startet. Obwohl dies eigentlich recht einfach erscheint, ist es oft das erste Hindernis wenn man diese Einrichtung vornimmt.

Es gibt verschiedene Tutorials, die es alle ein wenig anders erklären. In allen Fällen ist die Anleitung entweder falsch oder sie funktioniert nicht bei jedem.

Als erstes solltest Du überprüfen, dass Du das richtige Terminal Window nutzt. Da man normalerweise automatisch in das Default Pi einloggen, ist es wichtig “commands” über den Standard Terminal zu schicken und nicht den RootTerminal. Glücklicherweise sind die folgenden Anweisungen nicht davon abhängig welchen Terminal Du nutzt.

Damit Tightvnc automatisch startet müssen wir eine neue Init Datei erstellen. Hier unten ist der Code, den wir hinzufügen:

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          tightvncserver
    # Required-Start:    $local_fs
    # Required-Stop:     $local_fs
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start/stop tightvncserver
    ### END INIT INFO

    # More details see:
    # https://codeclinic.de/2014/01/raspberry-pi-tutorial-setting-vnc-default-desktop

    ### Customize this entry
    # Set the USER variable to the name of the user to start tightvncserver under
    export USER='pi'
    ### End customization required

    eval cd ~$USER
    case "$1" in
      start)
        su $USER -c '/usr/bin/tightvncserver :1'
        echo "Starting TightVNC server for $USER "
        ;;

      stop)
        pkill Xtightvnc
        echo "Tightvncserver stopped"
        ;;
      *)
        echo "Usage: /etc/init.d/tightvncserver {start|stop}"
        exit 1
        ;;
    esac
    exit 0

 

Um den vollständigen Code herunterzuladen nutze die folgenden commands, um den Code durch
Penguin Tutors Repository zu bekommen:

wget http://www.penguintutor.com/otherfiles/tightvncserver-init.txt
sudo mv tightvncserver-init.txt /etc/init.d/tightvncserver

 

Zeile 16 nutzt im Moment den Default Username ‘pi’. Falls nötig kannst Du das ändern, aber meistens wirst Du als Default Nutzer einloggen. Auf keinen Fall die “Root” als Nutzer setzen.

Die Datei muss aktualisiert werden, so dass sie zur “Root” gehört (dies ist nicht unbedingt notwendig, ist aber die Standardeinstellung fuer init Dateien). Dieser Schritt fehlt oft von den Tutorials, die wir gesehen haben und die haben bei uns nicht funktioniert. Also würden wir wirklich empfehlen, dieses command auszuführen:

sudo chown root:root /etc/init.d/tightvncserver

 

Die Datei ausführbar machen indem Du durch führst:

sudo chmod 755 /etc/init.d/tightvncserver

 

Füge das Script zu den Default runlevels mit dem command:

sudo update-rc.d tightvncserver defaults

 

TightVNC startet nun wenn Dein (LXDE) Desktop startet. Wir empfehlen jetzt einen Neustart, um sicherzugehen, dass es funktoniert, aber Du kannst auch aufhören ohne neu zu starten . Man kann das ganze manuell starten und stoppen:

sudo /etc/init.d/tightvncserver start

und

sudo /etc/init.d/tightvncserver stop

 

Anmerkung: Diese Anleitung gilt nur dafür einen TightVNC auf dem Computer laufen zu lassen. Falls Du bestimmte TightVNCs starten und stoppen willst, dann musst Du das Startup Script entsprechend ändern. Für mehr Info über VNC auf Raspbian Desktop 0 lese Teil 2.

This post is also available in: Englisch

Author Phill

Phill has been designing and developing websites since 1986 in the early days of the web. As a self taught teenager, he built one of the world’s first Internet radio stations on pocket money, an old 8MHz Pc and a ‘dial-up’ connection. Subsequently he went on to gain a 1st Class Honours Degree in Multimedia & Internet Technology, before working on sites for IBM and the worlds leading aviation sales company.

More posts by Phill

Join the discussion 14 Comments

  • Henning says:

    Sehr gutes Tutorial! Genau das wonach ich gesucht habe, vielen Dank für die Mühe!
    Anmerkung: Ich hatte mir den Script Code kopiert und hatte einige Fehlermeldungen bei der Registrierung. Es hat sich herausgestellt, dass der Code genau so formatiert und eingerückt seien muss wie hier angegeben (sonst hagelt es Fehler).

  • […] genannte Lösung “zu technisch” und mein Erfolgserlebnis für VNC habe ich in der Code Clinic […]

  • mike says:

    Vielleicht ergänzt ihr die prima Anleitung noch um den Hinweis wie die Bildschirmauflösung beim Start des VNC servers auf dem pi eingestellt werden kann:

    In der ‘/etc/init.d/tightvncserver ‘
    mit dieser Anpassung auf 1280 x 720:

    su $USER -c ‘/usr/bin/vncserver :1 -geometry 1280×720 -depth 24’

  • mike says:

    Dankeschön.

    Verständlich, nützlich und tut 🙂

  • Clemens says:

    Cool, läuft direkt so auf dem Pi 2. Und die Grundinstallation mit Noobs geht inzwischen auch via VNC, siehe https://raspberrypi.stackexchange.com/questions/28609/is-it-possible-to-interact-with-the-noobs-install-remotely-vnc-ssh-or-other (Allerdings musste ich verschiedene VNC Viewer durchprobieren bis die Verbindung stand)

  • […] die Installation des VNC-Servers habe ich auf das Tutorial unter https://codeclinic.de/de/2014/01/raspberry-pi-tutorial-vnc-bei-raspbian-einrichten-teil-1/ zurückgegriffen. Es mag auch andere Wege geben, doch diese führten für mich schnell zum […]

  • Ramon says:

    Ich habe ein anderes Problem. Wenn ich den VNC Viewer starte, dann sehe ich einen leeren Desktop mit einem Papierkorb in der oberen linken Ecke. Keine anderen Symbole, nichts …
    Normalerweise arbeite ich über ein SSH Terminal mit dem RasPi.

    Muss ich da erst eine grafische Shell starten, und wenn ja, wie stelle ich sicher dass der richtige Bildschirm (:1) addressiert wird?

    Schon mal vielen Dank & VG

  • osraspi says:

    wenn ich die VNC – Session starte, spricht er nur in Englisch mit mir. Was kann der Grung sein?

  • Pavloo says:

    Alles schritt für schritt befolgt, und dann das:

    sh: 1: Syntax error: “(” unexpected
    sh: 1: Syntax error: “(” unexpected
    sh: 1: Syntax error: “(” unexpected
    sh: 1: Syntax error: “(” unexpected
    Couldn’t start Xtightvnc; trying default font path.
    Please set correct fontPath in the tightvncserver script.
    sh: 1: Syntax error: “(” unexpected
    sh: 1: Syntax error: “(” unexpected
    Couldn’t start Xtightvnc process.

  • beschu says:

    Vor dem reboot muss das Kommando vncpasswd ausgefuehrt werden (unter dem user, unter dem der Server spaeter laufen soll). Dabei wird die Passwortdatei fuer vnc in dessen Home-Verzeichnis angelegt, ohne die der Server spaeter nicht starten wird. Das wird bei der Beschreibung haeufig uebersehen, weil die Datei auch bereits angelegt wird, wenn der Server zum ersten Mal (als Funktionstest) interaktiv gestartet wird. Wenn man diesen Test aber nicht macht oder unter einem anderen Benutzer, hat man spaeter ein Problem.

  • H. U. Mathys says:

    Zu: Den VNC Server starten und ein Passwort konfigurieren

    Bei erster Nutzung des Servers wird von Dir verlangt ein Passwort zu erstellen. Dies ist das Passwort zur Remote Verbindung.
    –hier müsste meiner Meinung nach stehen: Raspi vorher abschalten und wieder einschalten….
    /usr/bin/tightvncserver
    –Erst dann konnte ich das Passwort definieren; ansonsten läuft tightVNCserver mit UltraVNC Viewer einwandfrei.

  • Adrian Marte says:

    Bei mir trat folgender Fehler während “sudo apt-get update && apt-get upgrade” auf:
    E: Could not open lock file /var/lib/dpkg/lock – open (13 Permission denied)
    E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

    Das lässt sich lösen, indem auch dem “upgrade” root Rechte gewährt werden:
    > sudo apt-get update
    > sudo apt-get upgrade

    Lg

  • […] If you simply need a connection into the Pi to do general task and run completely headerless we recommend you to use TightVNC because it is free open source software, provides compression to allow it to work over a slow network (Internet) and is readily available in the software repositories.Plus it seems to be the most reliable of the lot. To install TightVNCwe recommend you read Raspberry Pi: Setting Up VNC On Raspbian Pt1. […]

Leave a Reply