Zum Hauptinhalt Zur Navigation

Windows 10 IoT Core angetestet: Windows auf dem Raspberry Pi 2

Microsoft hat Windows auf das Raspberry Pi 2 gebracht. Linux-Fans müssen sich allerdings keine Sorgen machen. Denn Microsoft hat alles getan, um den typischen Pi-Nutzer abzuschrecken, wie unser erster Test zeigt.
/ Alexander Merz
237 Kommentare News folgen (öffnet im neuen Fenster)
Windows-10-Übersichtsbildschirm auf dem Raspberry Pi 2 (Bild: Microsoft)
Windows-10-Übersichtsbildschirm auf dem Raspberry Pi 2 Bild: Microsoft

Microsofts erster Versuch, bei Bastelrechnern Fuß zu fassen , ist gut ein halbes Jahr her, die Resonanz hielt sich in Grenzen. Mit dem auf der Entwicklerkonferenz Build 2015 vorgestellten Windows 10 IoT Core(öffnet im neuen Fenster) wagt das Unternehmen einen neuen Anlauf: Die neue Betriebssystem-Variante unterstützt sowohl das ARM-basierte Raspberry Pi 2 als auch das Intel-Atom-basierte Minnowboard Max(öffnet im neuen Fenster) . Wir haben uns angeschaut, wie Windows auf dem Raspberry Pi funktioniert und ob es eine Konkurrenz zu den etablierten Linux-Distributionen ist.

Die Installation ist aufwendig

Der erste Schritt(öffnet im neuen Fenster) , um Windows auf das Raspberry Pi zu bekommen, ist noch einfach: Ein Zip-Archiv muss heruntergeladen(öffnet im neuen Fenster) und entpackt werden. Darin befindet sich die Image-Datei, die auf eine Micro-SD-Karte geschrieben werden muss.

Allerdings handelt es sich dabei nicht um das übliche img -Abbild. Stattdessen befindet sich das Abbild in einem FFU-Container(öffnet im neuen Fenster) . Das ist ein Format, um "abgepackte" Windows-Installationen zu konfigurieren und weiterzugeben. Folglich reicht zur Übertragung des Images auch nicht das übliche dd-Kommando oder eines der einschlägigen GUI-Werkzeuge. Stattdessen ist das Kommandozeilenwerkzeug dism(öffnet im neuen Fenster) erforderlich. Notwendig ist die aktuelle Betriebssysstem-Version Windows 10, die es bislang nur als Preview gibt. Der Grund ist, dass dism in aktuellen Windows-8-Versionen überhaupt keine SD-Karten beschreiben kann.

Allerdings gibt es einen Weg, auch unter Windows 8.1 das dism-Werkzeug von Windows 10 zu benutzen. Es ist im Windows ADK für Windows 10(öffnet im neuen Fenster) enthalten. Das lässt sich auch unter Windows 8.1 installieren. Die Installation umfasst aber einige Gigabyte, sie dauert entsprechend lang. Es gilt auch zu beachten, dass dann das richtige dism-Programm ausgeführt wird. Bei uns fand es sich im Pfad " c:\Program Files (x86)\Windows\Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\Dism\ ".

Bekanntes Windows-Logo begrüßt uns

Nachdem wir schließlich das Image erfolgreich aufgespielt haben, werfen wir das Raspberry Pi an. Der erste Bootvorgang dauert noch länger, da noch einige Basiskonfigurationen vorgenommen werden. Auf dem Bildschirm deutet dabei nichts auf eine spezielle Windows-Variante hin – das aktuelle Windows-Logo ist zu sehen. Selbst bei den nachfolgenden, normalen Bootvorgängen sehen wir es länger, als uns lieb ist: Gut eineinhalb Minuten benötigt das System dann zum Starten.

Schließlich begrüßt uns ein Übersichtsbildschirm – kein Kachel-Startmenü oder gar ein Desktop. Der Bildschirm liefert uns die IP-Adresse des Raspberry Pi im Netzwerk wie auch den Gerätenamen. Ein Blick auf unser Strommessgerät zeigt uns, dass Windows in diesem Zustand auf dem Raspberry Pi nicht mehr Strom benötigt als Linux.

Arbeiten auf dem Gerät ist nicht vorgesehen

Unsere angeschlossene Maus bekommt trotzdem etwas zu tun. Neben der Schaltfläche zum Herunterfahren oder Neustarten des Rechners gibt es auch noch eine zweite Schaltfläche für die Gerätekonfiguration. Gespannt klicken wir sie an – und werden in zweierlei Hinsicht enttäuscht. Zum einen können wir hier nicht mehr tun, als Uhrzeit und Zeitzone einzustellen, zum anderen reagieren die Auswahllisten sehr zäh. Auch der Mauszeiger läuft nicht mehr flüssig. Eine mögliche Erklärung finden wir später.

Weitere Programme oder eine Kommandozeile lassen sich über den Übersichtsbildschirm nicht starten. Microsoft selbst sieht die direkte Arbeit auf dem Raspberry Pi nicht vor. Stattdessen sollen administrative Aufgaben per Powershell(öffnet im neuen Fenster) erledigt werden. Auf eine per SSH oder Telnet erreichbare Kommandozeile wird ebenfalls verzichtet – aus unserer Sicht ein Rückschritt: Die Windows-Variante für den Intel Galileo ließ noch den Zugriff per Telnet zu.

Wir sind allerdings neugierig, ob es nicht doch noch andere Wege gibt, auf den Rechner zuzugreifen, und werfen einen Portscanner an. Und tatsächlich: Auch der Zugriff per FTP und HTTP ist möglich. In beiden Fällen ist dafür kein Passwort erforderlich, anders als für den Fernzugriff per Powershell.

Per FTP erhalten wir vollständigen Zugriff auf die Inhalte der Windows-Partition auf der SD-Karte. Programme finden sich kaum. Manche vorhandenen Dateien deuten darauf hin, dass Windows 10 IoT Core wohl dem Windows-Phone-Entwicklungspfad entstammt. So finden wir Referenzen auf Telefonfunktionen, Cortana und Miracast. Selbst eine Definition für ein Startmenü taucht auf. Interessanterweise scheint es auch Vorbereitungen für Point-of-Sales- und Kassensysteme zu geben.

Die mächtige Webkonsole überrascht

Positiv überrascht sind wir von der Weboberfläche, die von Windows bereitgestellt wird – die vorhandene Dokumentation enthält darüber kaum ein Wort. Sie ist eine Mischung aus Gerätemanager, Debugging-Oberfläche und Programmverwaltung und setzt dabei auf eine REST-basierte API auf – welche innerhalb der Oberfläche dokumentiert ist. Das System erinnert an Luci(öffnet im neuen Fenster) von OpenWRT.

Über die Performance-Anzeige in der Weboberfläche zeigt sich auch, warum das System ruckelt, wenn wir die Konfigurationsoberfläche auf dem Pi selbst aufrufen: Die CPU-Auslastung steigt teilweise auf über 90 Prozent, allerdings nur, wenn wir tatsächlich mit Bedienungselementen interagieren. Lassen wir die Maus los, fällt die Auslastung sofort wieder auf 3 bis 4 Prozent. Wir haben den Verdacht, dass die Grafik derzeit vor allem von der CPU abgewickelt wird. Die Anzeige irritiert uns auch in anderer Hinsicht: Sie gibt keine Hinweise auf die 4 Cores des ARM-Prozessors.

Fündig werden wir da an anderer Stelle: Im Gerätemanager tauchen tatsächlich vier Prozessor-Einträge auf. Was hier allerdings fehlt, ist unser mittlerweile eingesteckter WLAN-Dongle. Die Unterstützung für USB-basierte WLAN- und Bluetooth-Dongles ist zwar dokumentiert(öffnet im neuen Fenster) , im aktuellen Build aber noch nicht verfügbar(öffnet im neuen Fenster) .

Die mangelnde WLAN-Unterstützung ist vermutlich auch der Grund dafür, dass die Miracast-App, die wir in der Programmverwaltung gefunden haben, beim Start abstürzt.

Fernprogrammierung wird einfach gemacht

Windows 10 IoT Core bringt keine Werkzeuge mit, um auf dem Raspberry selbst zu programmieren, weder Editor noch Compiler. Stattdessen arbeitet der Programmierer auf einem Host-Rechner und überträgt die fertig kompilierten Programme auf das Raspberry.

Für die Programmierung des Raspberry Pi ist deshalb die aktuelle RC-Version(öffnet im neuen Fenster) von Visual Studio 15 unumgänglich. Um diese Visual-Studio-Version mit dem Raspberry Pi zu nutzen, reicht Windows 8.1., auch wenn die Dokumentation zuweilen einen anderen Eindruck erweckt. Auch ist nur die kostenlose Community-Edition erforderlich. Weitere Aktionen auf dem Raspberry Pi sind nicht notwendig.

Microsoft stellt bislang für das Raspberry Pi Code-Beispiele in C#, Python und Javascript vor. Bei Javascript hat der Programmierer die Wahl, ob er dabei auf die Windows-eigene Javascript-Engine aufsetzen oder serverbasierte Node.js-Anwendungen umsetzen will. In letzterem Fall hat der Programmierer aber trotzdem vollen Zugriff auf die verfügbare WinRT-API. Je nach Programmiersprache ist allerdings die Installation zusätzlicher Module für Visual Studio notwendig.

Mit Ausnahme von Node.js-Anwendungen handelt es sich bei den Apps für das Raspberry Pi um Universal-Apps. Sie sollten der Theorie nach also später auch auf anderen Rechnern laufen können, umgekehrt sollten Windows-10-Apps damit auch ohne Unterschied auf dem Pi laufen. Inwieweit das sinnvoll ist, sei dem Nutzer zur Entscheidung überlassen.

Direkt die GPIO-Pins ansprechen

Als Folge muss der Programmierer auch keine spezifischen Eigenheiten des Raspberry Pi berücksichtigen. Die einzige Ausnahme ist natürlich die Verwendung spezifischer GPIO-Pins im Quellcode. Während Microsoft beim Windows für den Intel Galileo noch versuchte, die für die GPIO-Funktionen zuständige API Windows.Devices.GPIO(öffnet im neuen Fenster) durch eine Arduino-Kompatibilitätsschicht zu kapseln, findet sich in den neuen Beispielen nichts davon. Über Windows.Devices.I2C und Windows.Devices.SPI können auch die Bussysteme des Raspberry Pi genutzt werden.

Auch wenn der Begriff Universal-App nach Klicki-Bunti klingt – es kann sich dabei auch um Hintergrundanwendungen ohne GUI handeln. Durch eine entsprechende Konfiguration kann das Raspberry Pi auch ganz ohne Grafikausgabe betrieben werden.

Per Mausklick wird die App übers Netzwerk auf das Raspberry Pi übertragen und gestartet. Visual Studio kümmert sich dabei auch um mögliche Abhängigkeiten und installiert sie automatisch. Auch das Debuggen mit Visual Studio erfolgt unkompliziert und erfordert keine zusätzlichen Handgriffe. Negativ ist nur zu vermerken, dass Visual Studio unseren Raspberry Pi bei der Installation von selbst geschriebenen Programmen zuweilen nicht erreichen konnte, obwohl der gleichzeitige Zugriff über die Weboberfläche funktionierte. Woran das lag, konnten wir bislang nicht herausfinden.

Fazit

Windows auf dem Raspberry Pi 2: Für manchen mag das eine Horrorvorstellung sein. Dabei ist das jetzt vorgestellte Windows 10 IoT Core keine Konkurrenz zu Linux. Der Inhalt der Windows-Installation lässt sogar die Vermutung zu, dass diese Windows-Version überhaupt nicht mit den bisherigen Linux-Distributionen konkurrieren soll. Vielmehr hat Microsoft wohl eher Entwickler von Point-of-Sales-Systemen oder ähnlichen Anlagen im Auge. Etwas übertrieben formuliert: Geldautomaten könnten zukünftig nicht mehr auf alten Intel-Prozessoren mit Windows NT laufen, sondern mit dem Raspberry Pi 2 und Windows 10 IoT Core.

In diesem Kontext sind sowohl die umständliche Installation als auch der auf Visual Studio ausgerichtete Entwickler-Workflow verständlich. Außerdem punktet die Kombination von Visual Studio und Windows in einer Hinsicht: Die GUI-Entwicklung dürfte im Vergleich mit Linux einfacher sein.

Wer in all dem allerdings keinen Nutzen sieht, der kann um Windows 10 für sein Raspberry Pi beruhigt einen Bogen machen. Spezielle Windows-Apps für das Raspberry Pi 2 oder das Minnowboard sind noch nicht zu sehen. An Treibern für Hardware fehlt es genauso, und es ist noch nicht abzusehen, ob und wie Hersteller dem ARM-Trend folgen.


Relevante Themen