Windows 10 fuers IoT

Und hier unser Test der Windows 10 „IoT Core Insider Preview“ für den Raspberry Pi 2. Kein abgeschlossenes Projekt also, sondern wird in ein paar Wochen (heute: Mai 2015) wieder überholt sein. Aber nichtsdestotrotz, im Groben sind folgende Schritte notwendig gewesen:

– Image (Archiv) für den Pi2 downloaden, Zip entpacken
– ADK installieren und Image auf SD bringen
– Pi booten und Remote-Verbindung herstellen
– Minimalkonfiguration durchführen

Mehr im Detail sind wir dann wie im Folgenden vorgegangen…

Das Image gibt es bei Windows Connect. Dort muss man registriert sein, am besten auch im entsprechenden Developer-Programm von Microsoft.
Dann kriegt man unter

http://connect.microsoft.com/windowsembeddedIoT/Downloads/

auch einen Download-Bereich angezeigt und kann sich eine ZIP-Datei downloaden. Diese enthält das Image für den Pi (leider im ffu-Format) und einen Setup-Wizard für den Entwickler.

Startet man diesen, wird man gleich darauf hingewiesen, dass Visual-Studio 2015 benötigt wird. Wenn nicht vorhanden, kommt man an dieser Stelle auch nicht weiter. OK, die Anwendungserstellung schieben wir ‚mal etwas, wir wollen erstmal das Image.
 

 
Das „alte dism“ in der Windows8.1-Version funktioniert nicht zum Aufbringen des Full-Flash-Image auf SD. Im Gegensatz zu manchen anfänglichen Meinungen, ist aber kein Windows10-Desktop notwendig, es reicht die Installation des ADK für Windows10.
Das läuft witzigerweise auch unter Windows8.1-Update und damit sparen wir uns Eskapaden mit einer VM mit SD-Zugriff oder gar die Installation eines nicht fertigen 10er-Windows. Wer das trotzdem mag, also die komplette Win10-Familie anstrebt, hat schon alle Bordmittel da.

Das „Windows Assessment and Deployment Kit“ ist eigentlich für die Bereitstellung von vorbereiteten Windows-Installationen gedacht, beinhaltet aber auch neue Versionen von diversen Tools. Am Besten unter „Windows Assessment and Deployment Kit (Windows ADK) for Windows 10 Technical Preview“ suchen und das Ganze installieren, oder gleich:

https://go.microsoft.com/fwlink/p/?LinkId=526740

Danach wird das neue „dism“ mit dem vollen Pfad zum ADK-Verzeichnis aufgerufen und mindestens eine 8GB-SD mit dem Image bespielt. Größer geht auch.

$ „C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM\dism.exe“ /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive1 /SkipPlatformCheck
 

 
„flash.ffu“ ist hierbei das vorhin besorgte Image und steht bei uns im aktuellen Verzeichnis. Ansonsten bitte keine Slashs mit Backslashs verwechseln.

Das alte „dism“ versteht weder die Option „ApplyDrive“ noch „SkipPlatformCheck“. Da kriegt man dann Fehlermeldungen. Der Ausdruck „PhysicalDrive1“ beeinhaltet als Nummer (hier „1“) die Nummer der Disk, an welcher eure SD-Karte gebunden ist.

Diese bekommt man unter einer Shell (cmd mit Administrator-Rechten aufrufen) so heraus:

$ diskpart
# list disk
# exit

Steckt man dann die fertige SD und bootet den Pi (Netzwerkkabel anschließen), bekommt man eine graphische Oberfläche, die auch Maus- und Keyboard-Unterstützung und einen Konfigurationsbereich hat.

Erster Eindruck: Alles geschieht sehr langsam, Verbesserungen notwendig. Irgendwo ist alles auch noch ein bisschen unhandlich. Aber schön, ‚mal was anderes zu sehen. Wenn es erst offizielle Releases und eine komplette W10-Welt gibt, wird man nochmal urteilen müssen.
 

 
Im heimischen LAN taucht dann der Pi mit dem Standard-Hostnamen „miniwinpc“ und einer entsprechenden IP auf.

Hat man eine Fritzbox, kann man auf den Eintrag klicken ([Pi-Address]/AppXManager.htm) und bekommt im Browser-Fenster das „Webmanagement“ in seiner bis dato Beta-Version angezeigt. Hier sieht man schon recht gut, wie man sich bei MS Konfiguration und Management der Apps, Prozesse und so weiter vorstellt.
 

 
OK, das Meiste wollen wir aber wie gewohnt machen, ohne direkt am Pi zu sitzen, sondern im Netz von einer Konsole aus.

Dazu braucht es unter Windows-IoT bisher die Powershell an einem Windows-Rechner. Ruft man diese auf, dann gibt es zuerst kleinere Vorbereitungen zu tun:

$ net start WinRM
$ Set-Item WSMan:\localhost\Client\TrustedHosts -Value
$ remove-module psreadline -force

Für den letzten Befehl sollte gelten, dass das bei mir nicht notwendig gewesen ist. Das Modul konnte nicht entfernt werden (siehe folgendes Bild).
Ist das erledigt gibt man

$ Enter-PsSession -ComputerName -Credential \Administrator

ein und bekommt den entsprechenden Login-Dialog. Dort ist am Anfang das Standard-Passwort „p@ssw0rd“ einzugeben. Danach ist man auf dem entfernten WinIoT-Pi.
 

 
Über die Shell kann man sich dann schon ‚mal etwas in der (für den Raspi-Linuxer ungewohnten) Verzeichnisstruktur bewegen.

Natürlich erkennt man auch seine von Windows gewohnten Verzeichnisse wieder, nebst den diversen Programmen, die man dort in der Kommandozeile eingeben kann. So funktionieren „tracert“, „ipconfig“, „netstat“, „ping“, „nslookup“ usw. wie gewohnt und zeigen nun für unseren Raspi die entsprechende Konfiguration an. Was auch noch funktioniert, ist:

$ setcomputername [new-name]

und natürlich

$ shutdown /r /t 0

Ein

$ net user Administrator [new password]

ergab bei mir aber (wie divers nachzulesen auch), dass beim nächsten Start der Pi das neue Passwort wieder vergessen hatte. Obwohl „highly recommended“, hmm.
 

 
Fazit: Durchaus ein gängiges Konzept. Man wird es aber sicherlich schwer haben, sich gegen native Lösungen durchzusetzen. Wie also ein Linux-Image auf dem Pi zu haben, mit all seinen Möglichkeiten und der mit Abstand besseren Performance.

Vergleicht man das Ganze wiederum mit einer gekapselten Lösung wie Snappy (Ubuntu Core), kann man dem Ganzen aber durchaus etwas abgewinnen. Windows-Welt eben, aber das alleine sollte noch kein Negativ-Zeugnis ergeben.

Denn liebe Leute, seid mal offen gegenüber Alternativen. Ich selbst bleibe logischerweise bei Raspbian. Aber mal sehen, wie sich diese Alternative noch entwickelt. Und dazu braucht es Entwickler und Applikationen. Bei beidem steht man hier noch ganz am Anfang…

Swen Hopfe

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert