- Werbung -


Hier könnte Ihre Werbung stehen. Interessiert? Sprechen Sie uns an.


Neueste Kommentare

Unix X11-Ausgabe von Raspberry Pi auf Windows Desktop

Druckversion

Einige haben sicher schon einmal einen Kleinrechner Raspberry Pi in Betrieb genommen. Mit Monitor, Tastatur, Maus, Netzwerkkabel, USB-Hub für WLAN-Stick und Netzteilen liegt ein ziemlicher Draht­verhau auf dem Tisch. Inzwischen gibt es die Version B2 mit 512 MB Hauptspeicher und 4 (statt 2) USB-Anschlüssen. Diese hat allerdings einen Anschluss für Mikro-SD-Karten statt für normale SD-Karten. Es lebe der Industrie-Standard, jede Woche ein Anderer!

Es stellt sich die Frage, ob man den Raspi nicht auch fernsteuern könnte von einem PC mit Windows oder Unix/Linux. Die Konstruktion zur Ausgabe von grafischen Fenstern ist bei beiden Betriebssystemen gänzlich unterschiedlich:

  • Windows:         GDI (Graphical Device Interface)
  • Unix/Linux:       X11 auch X-Window genannt

Windows hat inzwischen einige Kommunikationsprogramme von Unix übernommen und Linux enthält Samba zur Benutzung des SMB-Protokolls für Windows-Dateifreigaben und –Drucker. Zu Zeiten von Windows 3.1 gab es für die X11-Ausgabe von Unix-Programmen auf Windows-Desktops das Produkt Exceed der Firma Hummingbird. Eine Einzellizenz hatte damals ca. 1.000 DM gekostet. Die Firma existiert wohl nicht mehr oder das Produkt wurde nicht mehr weiterentwickelt. Auf jeden Fall hat diese Software heute keine Bedeutung mehr. Wir ersetzen diese durch die kostenlosen Programme für Windows:

  • SSH-Client PuTTY [I1]
  • FTP/SFTP-Client FileZilla [I2]
  • X11-Server Xming [I3]

Mit lokaler Tastatur und angeschlossenem Monitor führen wir unter Raspbian zunächst einige Änderungen der Konfiguration durch. Für das Folgende wird angenommen, dass die LAN-Anschlüsse eine statische IP-Adresse haben und über einen Switch verbunden sind. Der WLAN-Anschluss erhält seine IP-Adresse per DHCP über einen Internet-Router.

Für dieses Beispiel mögen nachfolgende IP-Adressen gelten:

  • Tischrechner:    192.168.1.6                   # Monitor vorübergehend an Raspi angeschlossen
  • Klapprechner:   192.168.1.12
  • Raspi:               192.168.1.19

Diese IP-Adressen sind an die eigene Konfiguration anzupassen. Jetzt sind auf dem Raspi einige Änderungen vorzunehmen. Dazu eignen sich die Editoren Nano oder Vi, welche beide im Textfenster laufen. Der grafische Editor Gedit wird im abgespeckten Debian-Linux namens Raspbian nicht mitgeliefert.

In /etc/hosts ändern wir DHCP auf statische IP (Bild 1.1):

$ sudo vi /etc/hosts

Bild 1.1 /etc/hosts

Bild 1.1 /etc/hosts

Sudo versetzt einen normalen Benutzer unter Linux vorübergehend in den Modus des Administrators („root“), sonst lassen sich die Systemdateien nicht ändern. Der Zwischenraum ist durch TAB-Zeichen zu erzeugen, nicht durch Leerzeichen!

$ sudo vi /etc/network/interfaces # Bild 1.2

Bild 1.2 /etc/network/interfaces

Bild 1.2 /etc/network/interfaces

Die WLAN-Einstellungen bleiben unverändert. Danach ist ein Neustart des Netzwerks durchzuführen mit:

$ sudo ifdown eth0
$ sudo ifup eth0

Jetzt ist noch der SSH-Server für den Fernzugriff mit PuTTY zu starten. Im Programm „raspi-config“ der Grafik-Oberfläche wählen wir den Menüpunkt („advanced options“) aus. Der Punkt „SSH“ aktiviert oder deaktiviert den SSH-Server. Wir aktivieren ihn für die Kommunikation mit PuTTY auf dem Windows-Rechner. Den grafischen Desktop starten wir nicht automatisch, sondern manuell durch:

$ startx

Dazu später mehr. Vorsichtshalber starten wir den Raspi neu durch:

$ sudo restart

Wenn das Textfenster erscheint, gilt es die Konfiguration jetzt zu prüfen. Dazu führen wir aus:

  • Windows-PC:    $ ping 192.168.1.19                  # gegen raspi
  • Raspi:               $ ping 192.168.1.12                  # gegen Klapprechner

Wenn beide Kommandos erfolgreich waren, ist die Grundkonfiguration für den Fernsteuerzugriff erledigt. Nun versuchen wir eine Verbindungsaufnahme vom Fernsteuerrechner (Bild 1.3).

Bild 1.3 Verbindungsversuch

Bild 1.3 Verbindungsversuch

Wir sehen, dass die klassischen Unix-Tools abgewiesen werden durch Raspbian, weil Telnet und FTP die Zugangsdaten im Klartext über das Netzwerk schicken. Sie könnten da mit dem Netzwerksniffer „Wireshark (Etherreal)“ ausspioniert werden. Es sind also neuere Kommunikationsprogramme zu benutzen:

  • Telnet   => SSH-Client PuTTY
  • FTP      => SFTP-Client FileZilla (Secure File Transfer Protocol)

Dazu sind auf dem Windows-Rechner einige Installationen / Konfigurationen durchzuführen. Raspi-Benutzer haben sicherlich PuTTY und FileZilla schon installiert. Zunächst installieren wir den X-Server Xming (Bilder 2.1 bis 2.5)

Bild 2.1 Installation Xming Bild 2.2 Installation Xming Bild 2.3 Installation Xming Bild 2.4 Installation Xming Bild 2.5 Installation Xming

Bild 2.1 - 2.5 Installation Xming

Nach Ausführen von „Finish“ ist die Installation von Xming abgeschlossen. Eventuelle Meldungen der Windows-Firewall beantworten wir durch „zulassen“. Jetzt versuchen wir einen Zugriff mit PuTTY (Bild 3.1):

Bild 3.1 Fernzugriff mit PuTTY

Bild 3.1 Fernzugriff mit PuTTY

Wenn dieses geklappt hat, muss der X-Server konfiguriert werden durch Aufruf des Programms „XLaunch“ aus dem Xming-Menü (Bilder 4.1 bis 4.4):

Bild 4.1 Xming konfigurieren durch Aufruf von XLaunch Bild 4.2 Xming konfigurieren durch Aufruf von XLaunch Bild 4.3 Xming konfigurieren durch Aufruf von XLaunch Bild 4.4 Xming konfigurieren durch Aufruf von XLaunch

Bild 4.1 - 4.4 Xming konfigurieren durch Aufruf von XLaunch

Durch auswählen von „Fertig stellen“ ist die Konfiguration von Xming abgeschlossen. Jetzt ist noch PuTTY zu konfigurieren für die Zugriffe mit X11 (Bilder 5.1 bis 5.5). SSH hatten wir schon erledigt.

Bild 5.1 PuTTY konfigurieren für X11

Bild 5.1 PuTTY konfigurieren für X11

In diesem Fall wurde der symbolische Name „raspi“ verwendet, da ein entsprechender Eintrag in C:\Windows\System32\drivers\etc\hosts vorhanden war.

192.168.1.19      raspi       # Raspberry Pi

Durch Eingabe eines Namens („raspi512MB“) und Ausführen von „Save“ können wir dieses Profil zunächst mal abspeichern. Dann legen wir die Größe des Terminalfensters fest auf 100 * 40 Zeichen und den Puffer auf knapp 10.000 Zeilen. Dadurch können wir auch eine umfangreichere Sitzung nachträglich zu einer Dokumentation verarbeiten (Bild 5.2).

Bild 5.2 PuTTY konfigurieren für X11

Bild 5.2 PuTTY konfigurieren für X11

Auf der nächsten Seite ändern wir nichts (Bild 5.3).

Bild 5.3 PuTTY konfigurieren für X11

Bild 5.3 PuTTY konfigurieren für X11

Auf der nächsten Seite ist sorgfältig auf die Syntax „localhost:0.0“ zu achten (Bild 5.4).

Bild 5.4 PuTTY konfigurieren für X11

Bild 5.4 PuTTY konfigurieren für X11

Zurück ganz oben im Menübaum speichern wir die jetzt erstellte Konfiguration unter dem vorherigen Namen „raspi512MB“. Dann prüfen wir, ob die PuTTY-Verbindung noch funktioniert (Bild 5.5).

Bild 5.5 PuTTY nach Konfiguration erneut testen

Bild 5.5 PuTTY nach Konfiguration erneut testen

Jetzt ist es an der Zeit zu schauen, ob unsere Arbeit mit einem Erfolg gekrönt wird (Bild 6.1).

Bild 6.1 Test auf Erfolg der Installation und Konfiguration

Bild 6.1 Test auf Erfolg der Installation und Konfiguration

Wenn der Zugriff durch einen zweiten Unix/Linux-Rechner erfolgen soll, würden wir hier ausführen:

$ DISPLAY=192.168.1.12:0.0
$ export DISPLAY
$ echo $DISPLAY

Die Großschreibung der Environment-Variablen DISPLAY ist wichtig! Beim Zugriff von einem Windows-Rechner mit PuTTY ändern wir nichts, sondern lassen DISPLAY wie es ist.

Jetzt kommt der spannende Moment. Durch Aufruf von „mathematica &“ wird dieses Programm im Hintergrund gestartet. Falls eine Fehlermeldung kommt „can’t open display …“, ist noch irgendetwas falsch. Dann prüft man die Konfiguration noch einmal sorgfältig. Eventuell läuft der XLaunch noch nicht. Dies überprüfe man durch einen Blick ins „Tray“ (Bild 6.4). Nach Neustart des Windows-Rechners läuft er normalerweise nicht, eventuell trage man diesen in eine der Autostart-Dateien ein.

Bild 6.4 X-Server läuft (unten rechts „X“)

Bild 6.4 X-Server läuft (unten rechts „X“)

Wenn kein Fehler auftritt, erscheint nach kurzer Zeit der „rote Mathematica-Stern initializing…“. Es dauert dann noch eine „halbe Ewigkeit“ wegen des langsamen Raspi, bis das Logo (Bild 6.2) und das Anwenderfenster (Bild 6.3) erscheint.

Bild 6.2 Mathematica Logo

Bild 6.2 Mathematica Logo

Bild 6.3 Mathematica-Sitzung

Bild 6.3 Mathematica-Sitzung

Die Bedienung des Programms kann man nachlesen im ct-Artikel [L1] oder im Buch [L2]. Alle Eingaben sind durch „SHIFT + RETURN“ abzuschließen!

Wenn der Raspi ausgeschaltet werden soll, fahre man ihn herunter durch:

$ sudo shutdown –h now

Abschließend sei noch gesagt, dass man den grafischen Desktop des Raspi durch „$ startx“ auf diese Weise nicht starten kann. Startx ist ein aufwendiges Skript und funktioniert über die X11-Umleitung nicht (siehe Bild 6.5).

Bild 6.5 Startversuch des Raspi-Desktops über eine X11-Umleitung

Bild 6.5 Startversuch des Raspi-Desktops über eine X11-Umleitung

Ausweg aus dieser Situation kann sein:

  • WLAN konfigurieren am Anfang mit angeschlossenem Monitor
  • Über „raspi-config“ das WLAN eventuell EINgeschaltet lassen.
  • ​Startx nicht automatisch ausführen lassen
Internet-Quellen

  [I1] SSH-Client PuTTY:            http://www.putty.org/

  [I2] SFTP-Client FileZilla:         https://filezilla-project.org/download.php?type=client

  [I3] X11-Server Xming:            http://sourceforge.net/projects/xming/

Literatur

  [L1] Michael Kofler, Mathe kostenlos, Einführung in Mathematica auf dem Raspberry Pi, ct 20/2014   Seite 166 ff

  [L2] Stephen  Wolfram, Mathematica, Ein System für Mathematik auf dem Computer, Addison-Wesley München, 1992

"reboot" unter Raspbian

Das Kommando "reboot" hat man bei der Übernahme von Debian leider nicht mitgenommen. Statt

"$ sudo reboot"

ist hier

"$ sudo init 6"

einzugeben.

Reinhold

 

Mehr davon!

Der Hinweis auf Mathematica ist prima, vielen Dank für den gelungenen Beitrag!

Ergänzung:Linux gegen Linux

Für eine X11-Umleitung Linux gegen Linux genügt:

"$ ssh -X -l benutzer rechnername_oder_IP"         # mit grossem 'X' und kleinem 'L'!

"$ gedit test.txt &"

Dieses habe ich getestet mit Debian 7 und Ubuntu 2010.04 in beide Richtungen.