Startseite>Angetestet: Windows 10 IoT Core auf dem Raspberry Pi 2
Aus Raspberry Pi Geek 04/2015

Angetestet: Windows 10 IoT Core auf dem Raspberry Pi 2

© Spectral, 123RF

Schräges Fenster

Alexander Merz

Microsoft bringt Windows 10 auch auf den Raspberry Pi 2. Eine Alternative zu Linux bietet Win10 IoT Core aber nicht, denn Microsoft hat alles getan, um den typischen Pi-Nutzer abzuschrecken, wie unser erster Test zeigt.

Microsofts erster Versuch, bei Bastelrechnern Fuß zu fassen, liegt gut ein halbes Jahr zurück; die Resonanz hielt sich seinerzeit in Grenzen. Mit dem auf der Entwicklerkonferenz Build 2015 vorgestellten Windows 10 IoT Core [1] wagt das Unternehmen einen neuen Anlauf: Die neue Betriebssystem-Variante unterstützt sowohl den ARM-basierten Raspberry Pi 2 als auch das Intel-Atom-basierte Minnowboard Max [2]. Wir haben uns angesehen, wie Windows auf dem RasPi funktioniert und inwieweit es mit den etablierten Linux-Distributionen konkurrieren kann.

Installation à la Microsoft

Um Windows auf den Raspberry Pi zu befördern, laden Sie ein Zip-Archiv herunter [3], entpacken die enthaltene Abbilddatei und schreiben sie auf eine Micro-SD-Karte [4]. Allerdings handelt es sich nicht um das übliche IMG, sondern um einen FFU-Container – ein Format, um “abgepackte” Windows-Installationen zu konfigurieren und weiterzugeben [5]. Daher lässt sich das Image weder per Dd noch mithilfe eines der einschlägigen GUI-Werkzeuge auf die SD-Karte befördern. Stattdessen benötigen Sie dazu das Kommandozeilenwerkzeug Dism aus der Windows-10-Preview – das Dism aus aktuellen Windows-8-Versionen vermag überhaupt keine SD-Karten zu beschreiben.

Immerhin lässt sich das Windows-10-Dism auch unter Windows 8.1 benutzen. Dazu besorgen Sie sich das Windows-ADK für Windows 10 [6], das jedoch einige GByte umfasst – entsprechend kaugummiartig zieht sich die Installation. Anschließend finden Sie die benötigte Dism-Variante unter C:\Program Files (x86)\Windows\Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\Dism\.

Nach dem Aufspielen des Images werfen wir den Raspberry Pi an. Beim ersten Booten gilt es, noch eine Basiskonfiguration vorzunehmen. Nichts auf dem Bildschirm deutet dabei auf eine spezielle Windows-Variante hin, das aktuelle Windows-Logo ist zu sehen. Auch bei den nachfolgenden normalen Bootvorgängen bleibt es länger sichtbar, als uns lieb ist: Gut 90 Sekunden benötigt das System dann zum Starten.

Schließlich begrüßt uns statt eines Kachel-Startmenüs oder gar Desktops ein Übersichtsbildschirm (Abbildung 1). Er zeigt die IP-Adresse des RasPi sowie dessen Gerätenamen. Ein Blick auf das Strommessgerät verrät, dass Windows in diesem Zustand auf dem Raspberry Pi nicht mehr Strom benötigt als Linux.

Abbildung 1: Weder Desktop noch Kacheln: Der Win10-IoT-Startscreen zeigt lediglich IP-Adresse und Gerätenamen des RasPi.

Abbildung 1: Weder Desktop noch Kacheln: Der Win10-IoT-Startscreen zeigt lediglich IP-Adresse und Gerätenamen des RasPi.

Arbeiten nicht vorgesehen

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

Weitere Programme oder eine Kommandozeile lassen sich aus dem Übersichtsbildschirm nicht starten: Microsoft selbst sieht die direkte Arbeit auf dem Raspberry Pi nicht vor. Stattdessen soll man alle administrativen Aufgaben per Powershell erledigen [7]. Eine per SSH oder Telnet erreichbare Kommandozeile fehlt ebenfalls. Wie ein Portscan zutage fördert, klappt ein Zugriff aber auch per FTP und HTTP; in beiden Fällen braucht man dazu kein Passwort, 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. Hier finden sich kaum Programme; manche der vorhandenen Dateien deuten darauf hin, dass Windows 10 IoT Core wohl dem Windows-Phone-Entwicklungspfad entstammt. So finden wir Referenzen auf Telefonfunktionen, auf Cortana und Miracast. Selbst eine Definition für ein Startmenü taucht auf. Interessanterweise scheint es auch Vorbereitungen für Kassensysteme zu geben.

Mächtige Webkonsole

Positiv überrascht hingegen die Weboberfläche, die Windows 10 IoT Core bereitstellt – die vorhandene Dokumentation enthält darüber kaum ein Wort. Die GUI präsentiert sich als Mischung aus Gerätemanager, Debugging-Oberfläche und Programmverwaltung (Abbildung 2) und setzt dabei auf eine REST-basierte API auf, die innerhalb der Oberfläche dokumentiert ist. Das System erinnert an Luci von OpenWrt [8].

Abbildung 2: Die Weboberfläche von Windows 10 IoT Core kombiniert Gerätemanager, Debugging-Oberfläche und Programmverwaltung.

Abbildung 2: Die Weboberfläche von Windows 10 IoT Core kombiniert Gerätemanager, Debugging-Oberfläche und Programmverwaltung.

Über die Performance-Anzeige in der Weboberfläche (Abbildung 3) 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 mit Bedienungselementen interagieren. Lassen wir die Maus los, fällt die Last sofort wieder auf 3 bis 4 Prozent. Es drängt sich der Verdacht auf, dass die Grafik derzeit vor allem von der CPU abgewickelt wird. Die Anzeige irritiert auch in anderer Hinsicht, denn Sie lässt jeden Hinweis auf die vier Cores des ARM-Prozessors vermissen.

Abbildung 3: Die Performance-Anzeige in der Weboberfläche lässt jeden Hinweis auf die vier Cores der RasPi-CPU vermissen.

Abbildung 3: Die Performance-Anzeige in der Weboberfläche lässt jeden Hinweis auf die vier Cores der RasPi-CPU vermissen.

Fündig werden wir da an anderer Stelle: Im Gerätemanager (Abbildung 4) tauchen tatsächlich vier Prozessor-Einträge auf, dagegen glänzt der eingesteckte WLAN-Stick durch Abwesenheit. Zwar erwähnt die Dokumentation eine Unterstützung für USB-basierte WLAN- und Bluetooth-Dongles [9], im aktuellen Build fehlt sie aber noch [10]. Die mangelnde WLAN-Unterstützung stellt vermutlich auch den Grund dafür dar, dass die Miracast-App, die wir in der Programmverwaltung gefunden haben, beim Start abstürzt.

Abbildung 4: Im Geräte-Manager tauchen zwar die vier CPU-Cores auf, nicht aber der angesteckte WLAN-Stick.

Abbildung 4: Im Geräte-Manager tauchen zwar die vier CPU-Cores auf, nicht aber der angesteckte WLAN-Stick.

Fernprogrammierung

Windows 10 IoT Core bringt keine Werkzeuge mit, um auf dem Raspberry selbst zu programmieren, es gibt weder Editor noch Compiler. Stattdessen arbeitet der Programmierer auf einem Host-Rechner und überträgt die übersetzten Programme auf den RasPi. Zur Programmierung braucht man daher den aktuellen Release Candidate von Visual Studio 15, es genügt die kostenlose Community-Edition [11]. Als Basis dazu reicht Windows 8.1 aus, auch wenn die Dokumentation zuweilen einen anderen Eindruck erweckt.

Microsoft stellt für den RasPi bislang Code-Beispiele in C#, Python und Javascript vor. Bei Javascript haben Sie die Wahl, dabei auf die Javascript-Engine von Windows aufzusetzen oder serverbasierte Node.js-Anwendungen umzusetzen. Der Zugriff auf die verfügbare WinRT-API gelingt in jedem Fall, je nach Programmiersprache müssen Sie dazu allerdings zusätzliche Module für Visual Studio installieren.

Von Node.js-Anwendungen einmal abgesehen, handelt es sich bei den Apps für den RasPi um sogenannte Universal-Apps, die zumindest theoretisch später also auch auf anderen Rechnern laufen können. Umgekehrt sollten Windows-10-Apps damit auch auf dem RasPi laufen – fraglich, inwieweit das sinnvoll ist. Auch wenn der Begriff Universal-App nach Klicki-Bunti klingt – es kann sich dabei auch um Hintergrundanwendungen ohne GUI handeln. Durch eine entsprechende Konfiguration lässt sich der RasPi auch unter Windows 10 IoT Core ganz ohne Grafikausgabe betreiben.

Infolge des Universal-App-Ansatzes muss der Programmierer auch keine spezifischen Eigenheiten des Raspberry Pi berücksichtigen. Es gibt aber natürlich die Möglichkeit, spezifische GPIO-Pins anzusteuern. Während Microsoft beim Windows für den Intel Galileo noch versuchte, die für die GPIO-Funktionen zuständige API Windows.Devices.GPIO [12] durch eine Arduino-Kompatibilitätsschicht zu kapseln, findet sich in den neuen Beispielen nichts davon. Über Windows.Devices.I2C und Windows.Devices.SPI lassen sich auch die Bussysteme des Raspberry Pi nutzen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland