Ausprobiert: Windows 10 IoT Core Insider Preview auf dem Raspberry Pi 2 – Teil 2

Windows 10

Nun, nachdem wir in Teil 1 alle Vorarbeiten erledigt und wir einen Raspberry Pi 2 mit vorinstallierten Windows 10 IoT Core in der Gegend rumstehen haben, wenden wir uns nun mal dem Management der kleinen Himbeere zu: Primär geht das wunderbar mit der PowerShell – kein buntes Point and Click-Interface oder ein ausführlicheres Webinterface, im Fokus steht die auf den ersten Blick schlichte, aber ungemein mächtige und tiefgreifende Erweiterung der – wie ich sie immer noch nenne – DOS-Shell.

Über das Windows Remote Management verbinden wir uns auf den Raspberry Pi 2 und müssen diesen erst einmal als „Trusted Host“ für unser System deklarieren – dies geschieht über die PowerShell, die Ihr als Administrator starten müsst, über den Befehl:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value N

„N“ ist in diesem Falle der Platzhalter für die IP-Adresse, in vorliegenden Fall also die 192.168.15.40. Nach Eingabe des Befehls stoßen wir auf mindestens eine, im Erstinstallationsfalle definitiv auf eine Abfrage. Die erste fragt uns nun, ob wir den noch nicht gestarteten WinRM-Dienst starten wollen (was wir natürlich bejahen, denn sonst wird es nichts mit der Remoteverwaltung unserer Windows 10 IoT Core) und ob wir definitiv eine Änderung an der Trusted Hosts-Liste des Systems durchführen wollen – auch das nicken wir ab.

Erscheint anschließend eine Fehlermeldung, die auf eine fehlende Konfiguration des WinRM-Dienstes hinweist, können wir diese Konfiguration durch Eingabe von „winrm quickconfig“ und dem Bestätigen der beiden nachfolgenden Sicherheitsabfragen direkt erledigen und anschließend noch einmal versuchen, unseren Raspberry Pi 2 als Trusted Host zu definieren – nun sollte es dann auch klappen.

image1

Nun können wir uns mit Hilfe des Befehls

Enter-PsSession -ComputerName N -Credential N\Administrator

auf dem Gerät anmelden und ersetzen auch hier wieder „N“ mit der IP-Adresse unseres Pi’s – nach 30 Sekunden Wartezeit, in der wir uns fragen, ob soweit alles sauber funktioniert, erscheint dann schlussendlich doch das Konsolenprompt des Zielsystems, das uns durch die IP des Gerätes in den eckigen Klammern verrät: Verbindung ist erfolgt. Kommt es übrigens zu einer PowerShell-Fehlermeldung, die uns mit einer „Stack Overflow Exception“ ärgert, sind wir einem bekannten PowerShell-Fehler aufgesessen, den wir durch Eingabe von

„remove-module psreadline –force“

in Zukunft unterbinden können.

image2

Was wir jetzt an dieser Stelle tun wollen? Das Ändern des Administratorkennwortes oder das Setzen des Pi-Namens wären beispielsweise zwei Dinge, an die man gegebenenfalls zuerst denken sollte. Der Befehl

„net user Administrator [Neues Kennwort]“

gefolgt von der einmaligen Eingabe von

„schtasks /Delete /TN Microsoft\Windows\IoT\Startup /F“

rundet Punkt 1 der Agenda ab und verschafft uns ein Kennwort, welches ein wenig individueller ist als das bisherige von der Stange. Den Hostnamen ändern wir nun noch durch Eingabe von „setcomputername [Neuer Name]“ und starten dann – fast obligatorisch – den Raspberry Pi 2 durch den Befehl „shutdown /r /t 0“ einmal neu, damit der neue Rechnername greift – fertig.

Wie bekommen wir nun eine erste App auf das Gerät gebannt? Zunächst einmal besorgen wir uns einmal den aktuellen Release Candidate von Visual Studio 2015 (lauffähig ab Windows 7 Servicepack 1), installieren das Ganze und nach dem obligatorischen Wartekaffee geht es dann daran, das Visual Studio zum ersten Mal zu öffnen, um eine leicht abgewandelte Version von „Hallo Welt“ in C# zu schreiben und anschließend auf den Raspberry Pi 2 zu beamen.

Navigiert nach der abgeschlossenen Installation des Visual Studio 2015 RC auf „Datei“ -> „Neu“ -> „Projekt“ und dann in den Pfad „Vorlagen -> Windows -> Windows Universal“, um dort das Template „Blank App (Windows Universal) auszuwählen. Erscheint dieses dort nicht und nur die Aufforderung, die Visual Studio Tools für Universal Apps herunterzuladen, kann (und sollte!) das an dieser Stelle gemacht werden.

image3

Nach erfolgter Installation und Neustart des Visual Studio können wir dann das gewünschte Template samt Dateinamen- und Speicherort auswählen und einen Schritt weitergehen. Sofern das nun unser erstes Entwicklerprojekt unter der Windows 10 Insider Preview ist, werden wir nun darüber informiert, dass Visual Studio nicht im Developer-Modus ist und freundlich darüber aufgeklärt, wie dieser denn zu aktivieren ist:

image4

Gesagt – getan. Wer die Option im Visual Studio nicht finden kann (so erging es mir), darf auch den Weg über gpedit.msc, PowerShell oder die Windows-Registrierung gehen – in meinem Fall habe ich mich für Ersteres entschieden und nach dem Aktivieren der beiden Richtlinien kann man diese dann durch einen Neustart oder aber der Eingabe von „gpupdate /force“ als Administrator auch aktivieren, um anschliessend unser angefangenes Projekt „Hallo, Caschy!“ weiter zu bearbeiten:

image5

Im Projektmappenexplorer auf der rechten Seite suchen wir nun das Element „MainPage.xaml“ und heben es hervor – unten im Editor geben wir dann zwischen den -Tags die folgenden Befehle ein, wobei ihr den Textinhalt natürlich sinnwahrend ändern dürft 🙂 :

image6

Nachdem wir jetzt nun einen Text und einen Button generiert haben, würde es Sinn ergeben, das Ganze auch mit einer Aktion dahinter zu versehen – ein Doppelklick auf den Button generiert dann eine Klick-Aktion und eine Klick-Methode in der Datei “MainPage.xaml.cs“, die wir an geeigneter Stelle durch unseren Code erweitern und so erreichen, dass nach einem Klick auf dem Button ein entsprechend definierter Text angezeigt wird:

image7

Soweit sieht nun alles prima aus – durch den Druck auf F5 sollte das Ganze dann innerhalb Visual Studio seinen Testlauf durchführen und uns den simplen Output auf dem Bildschirm präsentieren:

image8

Nun zurück zum eigentlichen Thema dieses Artikels – die App sieht zwar nicht toll aus, funktioniert auf unserer x86-Plattform aber wenigstens. Nun gilt es, diese auf den in Teil 1 mit Windows 10 IoT-versehenen Raspberry Pi 2 zu bringen. Wählt oben also neben „Debug“ die „ARM-Architektur“ aus und unter „Device“ dann „Remote Machine“ – hier tragt Ihr dann den DNS-Namen oder die IP des Pi’s ein und deaktiviert den Authentifizierungsmodus:

image9

Ist dies soweit eingestellt, schickt die Taste F5 das Programm durch den Debugger und gibt das Ergebnis nicht lokal, sondern auf unserem Raspberry Pi 2 aus. Kommt indes eine Fehlermeldung, dass der Visual Studio 2015 Remote Debugger (MSVSMON.EXE) nicht erreichbar ist, müssen wir uns wie in Teil 1 gelernt via PowerShell auf den Pi einloggen und den Remote Debugger durch den Befehl

„schtasks /run /tn StartMsvsmon“

aktivieren, dann klappt es auch mit dem Output auf dem Zielsystem:

image10

Bildschirmfoto 2015-06-07 um 13.21.23

Nach dem Stoppen des Debuggings und der Feststellung, dass unsere Blog-Abwandlung von „Hallo, Welt“ anscheinend funktioniert, können wir das Ganze nun dauerhaft auf den Raspberry Pi 2 bannen – wir setzen oben die Option „Debug“ auf „Release“, die Architektur wieder auf „ARM“ und geben erneut die Daten unseres Zielsystems an.

Anschließend wählen wir oben in der Menüleiste unter dem Punkt „Erstellen“ den Punkt „HalloCaschy bereitstellen“ und warten ob der Dinge, die da kommen – hat alles geklappt, sollte die folgende Meldung

image12

aussagen, dass wir erfolgreich unsere erste Windows Universal App auf den Raspberry Pi 2 mit Windows 10 IoT Core verteilt haben – Eigenlob stinkt zwar, an dieser Stelle darf aber ein aufmunternder Schulterklopfer herhalten, um den aufstrebenden Developer für Folgeprojekte zu motivieren.

Das Ganze ist an dieser Stelle natürlich nur eine bessere Spielerei – aber eine Spielerei, die zeigt, was man mit den kommenden Entwicklungstools und den aktuellen Plattformen denn für Möglichkeiten hat. Wir haben an dieser Stelle auch nur vage an der Oberfläche der Möglichkeiten gekratzt, die Microsofts IoT-Implementierungen auf Entwicklerboards wie dem Raspberry Pi 2 oder anderen bietet – von Anbindung externer Komponenten, Robotersteuerung oder dem Basteln einer Wetterstation können wir an dieser Stelle nur träumen, aber Lösungen dafür existieren bereits und sind auf den Projektseiten auch schon dokumentiert.

Man darf also gespannt sein, wie sich das Internet der Dinge auch im Rahmen der kommenden Windows 10-Veröffentlichung denn so entwickelt und wer weiß – vielleicht gibt es doch eine Lösung, das in vielen Geldautomaten noch genutzte Windows XP abzulösen 😉 ?

Weitere Quellen:

> https://dev.windows.com/en-US/iot

> http://ms-iot.github.io/content/en-US/win10/samples/HelloWorld.htm

> Teil 1 der Anleitung

Gefällt dir der Artikel? Dann teile ihn mit deinen Freunden.

Avatar-Foto

Digital Native, der trotzdem gerne das Mittelalter erlebt hätte und chronischer Device-Switcher. Multimediafreak. England-Fan. Freier Autor & Tech Blogger. Hobbyphilosoph. Musik-Enthusiast. Zyniker. Hoffnungsvoller Idealist. Gladbacher Borusse und hauptberuflicher IT-Consultant.

Neueste Beiträge

Mit dem Absenden eines Kommentars stimmst du unserer Datenschutzerklärung und der Speicherung von dir angegebener, personenbezogener Daten zu.

23 Kommentare

  1. @saujung
    Ja die Größenbegrenzung bei FAT32 verstehe ich auch nicht.
    Damit solls aber gehen:
    http://www.ridgecrop.demon.co.uk/index.htm?guiformat.htm

    @Topic
    Für mich wirkt IoT noch sehr unausgegoren wenn ich die Berichte lese. Ein wenig mehr Komfort wäre mit der Hardware des RasPi durchaus möglich ohne unbedienbar zu werden…

  2. @Roelf
    Mit deinen infantilen und persönlichen Angriffen hast du dich leider für jede weitere, sachliche Diskussion selbst disqualifiziert. Auch der Seitenhieb auf mein Sprachverständnis war, gelinde gesagt, ein Eigentor. Diskussionen im Internet verlangen, wie auch im realen Leben, ein Mindestmaß an Anstand.

    @Dieter
    Ok, dann lag ich falsch mit der Annahme, dass du ein Anfänger bist.
    Aber dann dürfte dir auch klar sein, dass Linux nur der Kernel ist und Ubuntu eben schon ein „richtiges“ Linux. Eine Distribution versucht eben ein System leicht bedienbar zu machen und ich kann da bei Ubuntu keine eklatanten Nachteile zu z.B. Windows sehen.

    Auch die Aussage, Linux ist nichts für Produktivsysteme dürfte eig. auch nicht von jmd. stammen, der sich fast 20 Jahre mit der Materie beschäftigt: Linux der Kernel ist wrsl. der am weitesten verbreiteste Kernel und GNU/Linux Systemen im Bereich Server/Embedded/HPC auch.

    Deshalb kann ich solche falschen Pauschalaussagen nicht stehen lassen. Wenn du Windows o.Ä. bevorzugst, dann kannst du das gerne benutzen.
    Aber über eines der erfolgreichsten internationalen Gemeinschaftsprojekte in der IT Welt solchen verbalen Stuss zu verbreiten ist teilweise grenzwertig (Community bestehe nur aus Idioten, keine Install Exe, „Chinakopie“).

    Im Übrigen stimme ich mit dir in einem Punkt sogar überein: die Usability könnte an manchen Stellen wirklich besser sein. Aber ein Raspberry Pi samt Debian ist auch halt ned für jemanden gedacht, der kein Interesse an Technik hat.

  3. Hallo Oliver
    Habe mir einen Raspberry angeschafft und nach deiner Anleitung alles nachgemacht.
    Hat bis zum Ende alles ohne Fehlermeldung prima geklapt.
    Allerdings erscheint die App nicht auf dem pi.
    Auf dem Raspberry müsste jetzt doch irgendwo die exe sein?
    Kann mir da jemand auf die Sprünge helfen? Warscheinlich ist es nur eine Kleinigkeit.

Es werden alle Kommentare moderiert. Lies auch bitte unsere Kommentarregeln:

Für eine offene Diskussion behalten wir uns vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen. Wir möchten, dass respektvoll miteinander kommuniziert wird, so als ob die Diskussion mit real anwesenden Personen geführt wird. Dies machen wir für den Großteil unserer Leser, der sachlich und konstruktiv über ein Thema sprechen möchte - gerne auch mit Humor. In jedes Thema Politik einbringen ist nicht erwünscht.

Du willst nichts verpassen?

Du hast die Möglichkeit, den Feed dieses Beitrags zu abonnieren. Wer natürlich alles lesen möchte, der sollte den Hauptfeed abonnieren.