Permalink

47

Raspberry Pi als RDP-Client mit automatischer Anmeldung

Um keine großen PC-Gehäuse im Besprechungs- und Schulungsraum stehen zu haben, setzen wir in Zukunft einige Raspberry Pi’s ein. Diese verbinden sich automatisch mit einer dazugehörigen VM, welche nach der Schulung/Präsentation einfach wieder zurückgesetzt wird. Die Geräte befindet sich in einem kleinen Schacht unter dem Besprechungstisch.

Hardware

Zusätzlich zu dem Raspberry Pi, wird noch ein Gehäuse, eine SD-Speicherkarte und ein Netzteil benötigt. Wir verwenden dafür ein Starter Kit. Ebenfalls brauchen eine Tastatur und eine Maus.

Software

Als Betriebssystem kommt Raspbian zum Einsatz. Eine gute Anleitung zur Installation unter Windows und Linux findest du bei Jan Karres.

Nach der Installation, müssen noch die folgenden Schritte durchgeführt werden, damit sich das Gerät direkt nach dem Booten per RDP mit der VM verbindet.

  1. OS aktualisieren
    sudo apt-get update & apt-get upgrade
  2. RDP und Editor installieren
    sudo apt-get install rdesktop
  3. Autostart einrichten
    mkdir ~/.config/autostart
    nano ~/.config/autostart/.desktop

    … und folgende Zeilen einfügen.

    [Desktop Entry]
    Type=Application
    Exec=/home/pi/startrdp.sh
  4. Shellscript erstellen
    nano /home/pi/startrdp.sh

    … und folgendes Script einfügen.

     #!/bin/bash
     while ! ping -c 1 COMPUTERNAME > /dev/null; do
     sleep 1;
     done
     exec rdesktop COMPUTERNAME -f -u USERNAME -p PASSWORD

Jetzt nur noch die Rechte zum Ausführen der .sh setzen und fertig ist der kostengünstige „ThinClient“.

47 Kommentare

  1. Interessante Sache. Ist das wirklich vom Einschalten bis zur RDP-Verbindung automatisiert? Loggt ihr auch am Pi automatisch einen Benutzer ein? Funktioniert das auch mit Umleitung von Sound bzw. in die andere Richtung mit z.B. USB-Sticks?

    • Unter Raspbian meldet sich, je nach Auswahl nach der Installation (Boote LXDE/xserver), direkt der User Pi an. Danach startet das Shellscript und versucht die Verbindung aufzubauen. Bei WLAN kann der Aufbau einen Moment dauern; deshalb die while-Schleife. Sound kann übertragen werden, Speichermedien, Drucker, etc. sollten auch funktionieren, habe ich aber nicht getestet. Da musst du einfach mal „man rdesktop“ durchforsten. 😉

  2. Vielen Dank, genau das was ich gesucht habe um eine Anwendung dauerhaft auf einem Fernseher zu präsentieren. Es klappt wunderbar. Allerdings habe ich Sleep höher setzen müssen, da RDP immer zu schnell startete und der sich danach aufbauende Desktop des Raspi’s dann wieder in den Vordergrund geschoben hat.

    Erweitert man das Script mit

    xset s off
    xset -dpms
    xset s noblank

    schaltet der Raspberry auch nicht mehr nach 10 Minuten den Bildschirm schwarz. Man könnte hierfür natürlich noch ein weiteres Autostartscript schreiben, aber so tut’s ja auch.

  3. Hallo,

    vielen Dank für die tolle Beschreibung!
    Ich hätte noch eine ergänzende Frage…

    Ich wollte gerne, wenn die RDP Session beendet wird, dass dann der Raspberry automatisch runter fährt. Ganze zum Schluss hinter dem „exec“ Befehl, habe ich dann einfach ein sudo shutdown -h 0 gehängt. Leider ohne Wirkung…

    Kann mir da jemand einen Hinweis geben?

    Gruß
    Joe

    • Das “exec” führt den Befehl aus, ohne dabei die weitere Bearbeitung der darauf folgenden Befehle aufzuhalten. Vermutlich würde das Herunterfahren funktionieren, wenn du das “exec” weglässt und danach das shutdown machst. Dadurch wird auf das Beenden des rdesktop gewartet, bis das shutdown ausführt wird.

  4. Hallo!
    Vielen Dank für diese Beschreibung, das ist genau die Art von Autostart – Verhalten am Raspberry, welche ich schon seit Monaten suche.

    Leider muss ich zugeben, dass ich in Sachen Linux – Administration immer noch ein Anfänger bin und sich deshlab ein paar Probleme auftun.

    Zwar habe ich deine Anleitung wirklich Schritt für Schritt befolgt, aber leider wird das SH Skript nich automatisiert beim Systemstart ausgeführt. 🙁
    Das Skript an sich funktioniert, wenn man es manuell ausführt, nur der Autostart verweigert den Dienst.

    Wäre es möglich, dass du mir hier etwas Unterstützung zukommen lässt? Gerne auch per Mail!

    Danke schon mal im Voraus! 🙂
    Dominik

  5. Hallo,
    soweit funktioniert bei uns die rdesktop-Verbindung.
    Habe mal getestet was passiert wenn die LAN-Verbindung wegbricht und wieder aufgebaut wird (Netzwerkkabel gezogen). Bis ~5 Sekunden Unterbrechung läuft die RDP-Verbindung weider weiter, wenn es aber länger dauert friert der RDP-Bildschirm ein. Hab schon verschiedene Parameter getestet aber bisher ohne Erfolg. Meine aktuelle Befehlszeile lautet:
    rdesktop 192.168.10.228 -f -z -x -P -u xxx -p xxx
    Hätte gerne, das der RDP-Desktio geschlossen wird oder eine Fehlermeldung kommt. Ist dies mit rdesktop möglich?
    Daniel

  6. Normalerweise nicht, ist aber auch schon mal vorgekommen, deshalb auch mein Test hierzu.
    Da dieser Monitor laufende Produktionsdaten (Aktualisierungintervall 5 Sekunden) anzeigen soll, müssen diese auch immer aktuell sein und ein frozen RDP ist nicht da gar nicht gut!
    Daniel

    • Ok, vielleicht reicht es aus, einfach eine Endlosschleife (while true do rdesktop… done) um den Aufruf von rdesktop zu packen? Dadurch würde rdesktop einfach wieder gestartet werden, falls es sich mal schließt.

      Leider kann ich dir bzgl. des autom. Reconnects nicht weiterhelfen. Solltest du aber eine Lösung finden, würde ich mich über eine kurz Mitteilung freuen.

      Viele Grüße
      Gerrit

    • Aktuell sind wir mit der Wiedergabe-Qualität von Videos und Präsentationen nicht zufrieden. Aber für normales Surfen (ohne Videos) und Text-/Tabellenverarbeitung, sollte es allemal reichen.

  7. Hallo,

    ich bekomme immer die Fehlermeldung:
    Autoselected keyboard map en-gb
    ERROR: recv: Connection reset by peer

    habe es mit xfreerdp versucht, das funktioniert, was stimmt mit rdesktop nicht.

    Kann jemand helfen.

    Danke

    Eric

  8. Hallo erstmal!

    Wir machen Load Balancing für unsere Terminalserver. Deshalb muss man sich zweimal authentifizieren. Beim ersten Terminalserver und wenn man weitergeleitet wird auch beim zweiten. Freerdp hat dieses Problem nicht. Allerdings ist da die Darstellung sehr schlecht und man muss die Zertifikate einzeln bestätigen. Deshalb meine zwei Fragen:
    1. Wisst ihr ob das in rdesktop 1.8.x behoben ist?
    2. Wird 1.8.x bald für raspbian verfügbar sein?

  9. Hallo!

    Super Anleitung, hat soweit alles geklappt. Wir wollen die Lösung in der Prod. als Thin-Client für die Dateneingabe testen. Ich schaffe es aber einfach nicht, dass der Rasp sich nach abmelden/trennen am TS automatisch herunterfährt. War hier ja schon kurz ein Thema und ich hab einiges probiert, aber leider ohne Erfolg.

  10. Hallo!

    Bei mir fährt er immer noch nicht herunter. Das Script sieht so aus.Irgendetwas verkehrt?

    #!/bin/bash
    xset s off
    xset -dpms
    xset s noblank
    exec rdesktop 192.168.xx.xx -f -z -d xxxx -u xxxx -p xxxx

    while [ $(ps aux | grep -v grep | grep rdesktop) != “” ]; do
    sleep 3;
    done

    sudo poweroff

  11. Hi,

    habt ihr auch ein tool mit dem ihr Euch als Schulungsleiter auf die Raspberrys aufschalten könnt?
    Um dann den „Schüler“ zu begleiten o. er Euch was zeigen will.

  12. Hallo,

    das Script ist super, von Hand ausgeführt funktioniert es einwandfrei – ich bekomme es aber einfach nicht automatisch gestartet. habe schon mit chmod probiert, ohne Erfolg. Raspbian startet, das Script nicht.

    Hat vielleicht noch jemand eine Idee, was da sein könnte?
    Danke, lg Bernhard

  13. Hallo
    ich habe das soweit zusammen gebracht, funktioniert alles wunderbar, nur die Audioausgabe vom Server über den RPi-RDP-Client funktioniert nicht….
    Am Pi selbst habe ich audio via HDMI aber die ausgabe der Sounds vom verbundenen Server kommt nicht aus den Pi raus ..

    Hat jemand ne idee???

    Danke

  14. Hallihallo, ich bekomme bei sudo apt-get install mcedit den Fehler E: Unable to locate package mcedit. Hat jemand eine Idee was das sein kann?

    Viele Grüße Tom

      • Hallo,

        also „mcedit“ ist Bestandteil des Midnight Commanders, sprich man müsste diesen via

        # apt-get install mc

        installieren. Wie aber schon jemand in den Kommentaren erwähnte reicht „nano“ ja völlig für den Otto-Normalbenutzer aus.

        Gruß

        Alfons

  15. Hi ich habe jetzt einen anderen Weg gefunden rdesktop zu starten
    1)sudo nano /etc/xde/lxsession/LXDE/autostart

    2)@rdesktop IP -f -u NAME hinzugefügt

    Nun nurnoch das Automatische einloggen in den Lightdm .configs ausgestellt

    Klappt auch alles wunderbar aber wenn man die Maus ca. 1 min lang nicht bewegt schließt sich rdesktop und ich sehe den Linux Desktop bitte helft mir .
    LG Jemand

  16. Hi,
    bei Vorüberlegungen, wie man was am elegantesten im Hause ! realisieren kann, bin ich auf diesen Beitrag gestoßen.
    Was sich mir, als relativer Laie nicht erschließt, wie sieht bei Euch die Server Seite aus.
    Mit welcher Hardware bestückt und mit welcher Software?
    Ziel bei mir, im Hause einfach Terminals zu installieren, mit denen man schnell mal ins Netz der Netze kann und – so idealer weise – Skype und Netzradio betreiben kann.
    Das Ganze natürlich Strom sparend (oberste Priorität)

      • Mit kam es in erster Linie auf die notwendige Leistung des Servers an.
        Ab wann, bei etwa drei Clients gleichzeitig wäre mit einem Leistungseinbruch zu rechnen und wie leistungsfähig sollte der Server insgesamt sein? Ausgehend von einer reinen Linux Umgebung?

  17. Hallo ich schaffs einfach nicht es wird weder ein short cut erzeugt und beim autostart gehts auch nicht.

    chmod habe ich auch probiert
    woran kanns liegen?

  18. Ja habe ich gemacht, sind dort irgendwelche variablen Werte die ich setzen muss?
    Oder gibt es etwas was man beim abspeichern der Datei falsch machen kann?

    • Hi,

      danke für deinen Support hat leider nicht geklappt ich hab nach etwas google gefunden das ich die RDP Verbindung starten kann wenn ich in der CLI den Befehl Display=0.0 eingebe.
      HAt es was damit zu tun oder ist das bei dem Autostartscript nicht notwendig?

      • Ich habe nicht verstanden, was der Befehl oder Parameter Display ist.

        Funktioniert denn der Aufruf von rdesktop COMPUTERNAME -f -u USERNAME -p PASSWORD aus dem Terminal?

  19. Hallo,
    zuerst einmal eine schöne Anleitung! Läuft auch alles prima.

    Hab allerdings dazu noch eine Frage. Der While-Loop agiert ziemlich agressiv, sodass, wenn eine Wartung durchgeführt werden muss nur bleibt, das Netzwerk-Kabel zu ziehen. Könnte man den loop verlangsamen, sodass er nur alle 10-30 Sekunden ausgeführt wird?

      • Hey, danke für den Tipp.
        Jedoch reagiert mein Pi etwas merkwürdig. Alle anderen Werte als „1“ nach sleep führen dazu, dass RDP nach dem schliessen nicht wieder ausgeführt wird?

        • In dem Script wird der While-Loop genutzt, um die Erreichbarkeit des RDP Servers zu testen.

          Wenn die RDP Sitzung immer wieder aufgebaut werden soll, muss ein weiterer While-Loop hinzugefügt werden.

          #!/bin/bash
          while ! ping -c 1 COMPUTERNAME > /dev/null; do
          sleep 30;
          done

          while true do
          rdesktop COMPUTERNAME -f -u USERNAME -p PASSWORD
          sleep 1;
          done

  20. Hallo, ich hab schon ne menge mit dem Pi gemacht und hab mir nun den Pi3 zugelegt.
    Idee ist es ein Remote Desktop (Server2008) anzeigen zu lassen.
    Jedoch bekomme ich das Script nicht unter dem User Pi ans laufen, da ihm anscheinend die Rechte fehlen. Beim User Root lauft es wunderbar, jedoch soll dieser nicht verwendet werden.
    Was muss ich machen, damit ich beim User Pi auch das Script am laufen bekomme?
    Bin schon kurz davor alles neu zu machen, jedoch wäre diesbezüglich eine genauere Anleitung schon geil.
    Dann möchte ich zusätzlich auch, dass er sich per W-Lan anmeldet und nicht mit Ethernet.
    Ich habe das aktuelle Raspian im Einsatz (Jessie).

    Die Anleitung ist an sich super, doch bei mir klappt es nicht mit dem user Pi und den User root bekomme ich nicht zum „autologin“

  21. Falls das irgendjemand noch liest..
    Ist es möglich beim anmeldename den Benutzerzu wechseln und zuerst eine domäne einzusetzen ?

    also das es so aussieht: (Domäne)\(name=leer)

    wäre ziemlich hilfreich wenn es jemand wüsste..

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.