01signal.com

Einen Linux-Desktop auf einem Microsoft-Windows-Computer verwenden

Diese Webseite gehört zu einer Gruppe kleiner Projekte, die die Funktionen des Smart-Zynq-Boards untersuchen.

Dieses Projekt ist auch bei HelloFPGA veröffentlicht, das chinesischen Lesern empfohlen wird. Es gibt außerdem ein kurzes Video, das die auf dieser Seite beschriebene Methode zeigt.

Einführung

Auf Linux-Rechnern ist es möglich, dass grafische Software ein Fenster auf einem anderen Rechner öffnet. Mit anderen Worten: Die Software (zum Beispiel Google Chrome) läuft auf dem einen Rechner, während der Benutzer vor einem anderen Rechner sitzt. Ähnliche Lösungen gibt es auch für Microsoft Windows, aber sie bieten meist eine schlechte Benutzererfahrung. Linux ist für das Arbeiten aus der Ferne deutlich besser geeignet.

Diese Funktion wird nicht oft genutzt, weil die meisten Leute an ihrem eigenen Rechner oder Laptop arbeiten. Wenn aber kein Bildschirm an den Rechner angeschlossen ist, kann diese Funktion sehr nützlich sein.

Dieses Tutorial erklärt, wie man grafische Software unter Xillinux ausführt, während Maus, Tastatur und Bildschirm an einem Microsoft-Windows-Rechner angeschlossen sind.

Der X-Server

Die Grundlage für den Linux-Desktop ist das X-Window-System (auch X11 genannt). Das ist sehr alte Software, die aber bis heute gut funktioniert. Anders als bei Microsoft-Windows-Rechnern basiert die grafische Oberfläche auf dem X-Server. Dabei handelt es sich um ein reguläres Computerprogramm, das im Benutzermodus läuft und einen TCP/IP-Server implementiert. Dieser Server lauscht normalerweise auf Port 6000. Jedes Programm, das ein Fenster auf dem Bildschirm des Rechners anzeigen möchte, verbindet sich über TCP/IP mit diesem Server. Alle grafischen Informationen werden über diese TCP/IP-Verbindung übertragen. Auch die Tastatureingaben und Mausbewegungen des Benutzers gehen über diese Verbindung.

Das Programm, das das Fenster steuert, kann auf demselben Rechner oder auf einem anderen Rechner laufen. Das spielt keine Rolle, weil die Verbindung auf TCP/IP basiert.

Auf den meisten heutigen Linux-Rechnern kann man sich nicht direkt über TCP/IP von einem anderen Rechner aus mit dem X-Server verbinden. Diese Funktion ist aus Sicherheitsgründen abgeschaltet. Außerdem gibt es für eine solche Verbindung zwischen zwei Linux-Rechnern eine sichere Alternative: „ssh -X“. Dennoch sind grafische Programme auf einem Linux-Rechner normalerweise in der Lage, sich mit dem Display eines anderen Rechners zu verbinden.

Es ist daher nützlich, auf einem Microsoft-Windows-Rechner einen X-Server laufen zu lassen. Dieser X-Server erlaubt Programmen, die auf einem anderen Rechner laufen, ihre grafische Benutzeroberfläche auf dem Microsoft-Windows-Rechner darzustellen. Ich stelle zwei Möglichkeiten vor: Zuerst erscheint ein vollständiger Linux-Desktop auf dem Microsoft-Windows-Rechner. Danach zeige ich, wie nur ein einzelnes Fenster eines Programms erscheint, das auf dem Linux-Rechner läuft.

Vorbereitungen

Laden Sie zunächst vcxsrv herunter und installieren Sie es. Die Installation läuft wie bei jeder anderen Microsoft-Windows-Anwendung ab.

Im nächsten Schritt müssen Sie die IP-Adresse des Rechners herausfinden, auf dem Microsoft Windows läuft. Verwenden Sie dazu ipconfig in einer Eingabeaufforderung wie folgt:

> ipconfig

Windows IP Configuration


Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.1.11
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.3

Der nächste Schritt besteht darin, die Microsoft Windows Defender Firewall abzuschalten. Andernfalls können Programme auf Xillinux keine Verbindung zum X-Server herstellen. Tatsächlich schlägt sogar ein ping von Xillinux aus fehl.

Durch das Abschalten der Firewall wird der Rechner natürlich verwundbar für Angriffe aus dem Netzwerk. Es ist daher empfehlenswert, zu prüfen, ob das Rechnernetz von einer externen Firewall geschützt ist, bevor man diesen Schritt durchführt.

Gehen Sie zu „Windows Defender Firewall aktivieren oder deaktivieren“.

Turning off Windows Defender Firewall, stage 1

Schalten Sie die Firewall dann ab:

Turning off Windows Defender Firewall, stage 2

Nachdem die Firewall abgeschaltet ist, vergewissern Sie sich, dass das Xillinux-Board eine Verbindung zum Microsoft-Windows-Rechner herstellen kann. Versuchen Sie zum Beispiel in Xillinux Folgendes:

root@localhost:~# ping 192.168.1.11
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.
64 bytes from 192.168.1.11: icmp_seq=1 ttl=128 time=0.797 ms
64 bytes from 192.168.1.11: icmp_seq=2 ttl=128 time=0.790 ms
64 bytes from 192.168.1.11: icmp_seq=3 ttl=128 time=0.782 ms
^C
--- 192.168.1.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.782/0.789/0.797/0.033 ms

Einen Linux-Desktop auf Microsoft Windows ausführen

Um vcxsrv zu starten, klicken Sie auf das Symbol mit dem Namen XLaunch.

Im ersten Pop-up-Fenster:

vcxsrv's first popup window

Im zweiten Pop-up-Fenster: Wählen Sie „Start no client“ (Keinen Client starten).

vcxsrv's second popup window

Im dritten Pop-up-Fenster: Aktivieren Sie „disable access control“ (Zugriffskontrolle deaktivieren). Das ermöglicht eine Verbindung vom Xillinux-Board aus.

vcxsrv's third popup window

Nach diesen drei Pop-up-Fenstern öffnet vcxsrv ein großes, leeres Fenster. Alles in diesem Fenster ist schwarz.

Nun füllen wir dieses große Fenster mit dem Desktop von Xillinux. Geben Sie dazu in einer Shell auf dem Xillinux-Board Folgendes ein:

root@localhost:~# DISPLAY=192.168.1.11:0 /etc/X11/Xsession

Einige Sekunden nach diesem Befehl erscheint der grafische Desktop auf dem Microsoft-Windows-Rechner.

Der Desktop lässt sich auch über ssh starten. Nehmen wir zum Beispiel an, die IP-Adresse des Xillinux-Boards lautet 192.168.1.123. In einem Eingabeaufforderungsfenster auf dem Microsoft-Windows-Rechner kann dann dieser Befehl verwendet werden:

> ssh root@192.168.1.123 "DISPLAY=192.168.1.11:0 /etc/X11/Xsession"

Vor der Verwendung von ssh muss für den Benutzer root ein Passwort vergeben sein.

Beachten Sie, dass es möglich ist, innerhalb des Fensters von vcxsrv mit Kopieren zu arbeiten und den Inhalt dann in einem normalen Fenster unter Microsoft Windows einzufügen. In der umgekehrten Richtung funktioniert das ebenfalls.

Bei „/etc/X11/Xsession“ handelt es sich um den Befehl, der den Desktop startet. Mit „DISPLAY=192.168.1.11:0“ wird einer Umgebungsvariablen ein Wert zugewiesen. Diese Variable teilt dem Programm mit, dass es sich mit einem entfernten Rechner verbinden soll.

Die DISPLAY-Zuweisung besteht aus zwei Teilen. Der erste Teil ist die IP-Adresse (im Beispiel 192.168.1.11). Der zweite Teil ist die Display-Nummer. Erinnern Sie sich: Beim Start von vcxsrv wurde als Display-Nummer 0 gewählt. Deshalb lautet der zweite Teil von DISPLAY „:0“. Dadurch wird der TCP-Client angewiesen, sich mit Port 6000 zu verbinden. Wenn man eine andere Display-Nummer wählt, muss DISPLAY entsprechend geändert werden. Lautet die Display-Nummer zum Beispiel 5, muss DISPLAY „192.168.1.11:5“ lauten. Der TCP-Client versucht in diesem Fall, sich mit Port 6005 zu verbinden.

Ein einzelnes Linux-Fenster auf Microsoft Windows öffnen

Ich zeige nun, wie man ein grafisches Computerprogramm unter Xillinux ausführt, sodass sich das Fenster auf dem Microsoft-Windows-Rechner öffnet.

Starten Sie vcxsrv wie zuvor, aber mit einem Unterschied: Wählen Sie statt One Large Window die Option Multiple Windows. Abgesehen von diesem Unterschied treffen Sie dieselben Entscheidungen wie zuvor.

vcxsrv's first popup window, multiple windows

Anders als zuvor öffnet sich nach den drei Pop-up-Fenstern kein neues Fenster. Es scheint, als würde nach dem Abschluss der Konfiguration nichts passieren. Das ist aber irreführend: Der X-Server läuft und wartet auf Anfragen.

Versuchen Sie zum Beispiel Folgendes in Xillinux:

root@localhost:~# DISPLAY=192.168.1.11:0 gnome-text-editor &

Dadurch wird ein Texteditor auf dem Microsoft-Windows-Rechner gestartet. Es ist auch möglich, ein Terminalfenster zu starten:

root@localhost:~# DISPLAY=192.168.1.11:0 lxterminal &

Ein auf diese Weise geöffnetes Terminalfenster hat einen Vorteil: Der Zusatz „DISPLAY=192.168.1.11:0“ ist dann nicht mehr nötig. Er gilt standardmäßig für alle Befehle, die in diesem Terminal gestartet werden.

Wie bereits erwähnt, kann man den Befehl auch über ssh senden. Geben Sie in der Eingabeaufforderung von Microsoft Windows Folgendes ein, um ein Terminalfenster zu starten:

> ssh root@192.168.1.123 "DISPLAY=192.168.1.11:0 lxterminal"

Wie zuvor wird in diesem Beispiel angenommen, dass die IP-Adresse des Xillinux-Boards 192.168.1.123 lautet.

Leider gibt es offenbar keine einfache Möglichkeit, den X-Server zu beenden. Wenn der X-Server in diesem Modus läuft, gibt es kein Fenster, das das Programm repräsentiert. Der Server wird daher mit dem Task-Manager beendet: Suchen Sie den Eintrag mit dem Namen „VcXsrv windows xserver“ und klicken Sie auf „Task beenden“.

Diese Seite wurde maschinell aus dem Englischen übersetzt. Im Zweifelsfall siehe den Originaltext.
Copyright © 2021-2026. All rights reserved. (dcc38493)