Vor einer Weile hat Microsoft Windows 10 IoT Core veröffentlicht,
dass auf verschiedenen Embedded Boards, wie z.B. dem Raspberry Pi läuft.
Der normale Brick Daemon für Windows läuft allerdings nicht auf Windows 10 IoT
Core. Wir haben aber jetzt eine Beta Version des Brick Daemons, die auch auf
die auf Windows 10 IoT Core läuft.
Installation
Diese Brick Daemon Version wurde auf einem Raspberry Pi 2 Model B mit den
Windows 10 IoT Core Versionen 10.0.10586, 10.0.14295 und 10.0.14376 getestet.
Im Moment kann Brick Daemon für Windows 10 IoT Core nur aus dem Quelltext
kompiliert und installiert werden. Dazu muss Visual Studio 2015 für Windows 10
IoT Entwicklung installiert sein. Falls dies noch nicht der Fall ist gibt
es hier eine
Installationsanleitung von Microsoft dazu.
Als nächstes muss der benötigte Quelltext für Brick Daemon
und die daemonlib
von GitHub heruntergeladen werden. Der daemonlib Quelltext muss ins
src\daemonlib Verzeichnis im Brick Daemon Quelltext Verzeichnis entpackt werden:
brickd-2.2.2-uwp-beta1
-> src
-> brickd
-> client.c
-> ...
-> daemonlib
-> daemon.c
-> ...
Zuletzt src\brickd\brickd_uwp.sln in Visual Studio 2015 öffnen und das Projekt
kompilieren und starten. Brick Daemon sollte jetzt auf Windows 10 IoT Core laufen.
Beta-Status
Dies ist eine Beta Version, da momentan noch ein größeres Problem vorhanden ist:
die automatische Erkennung von USB Geräten funktioniert nicht für alle Bricks
korrekt.
Die Windows.Devices API für den Zugriff auf USB Geräte setzt voraus, das jedes
USB Gerät eine DeviceInterfaceGUID zugewiesen hat. Normalerweise funktioniert
dies von sich aus für alle Bricks, aber Windows 10 IoT Core (zumindest Versionen
10.0.10586, 10.0.14295 und 10.0.14376) scheinen einen Bug zu haben, der dies für alle
Bricks außer dem RED Brick behindert. Es ist nicht klar, warum der RED Brick
von diesem Problem nicht betroffen ist.
Daher ist für alle Bricks außer dem RED Brick ein manueller Eingriff in die
Windows Registry nötig, damit sie von der Windows.Devices API erkannt werden.
Folgenden Schritte müssen für jeden Brick einmal ausgeführt werden:
Als ersts den Brick per USB anschließen, dann mit Power Shell eine Verbindung zu Windows 10 IoT herstellen
und den folgenden Befehl anpassen und ausführen:
reg add "HKLM\System\CurrentControlSet\Enum\USB\VID_16D0&PID_063D\6K9mW5\Device Parameters" /v DeviceInterfaceGUIDs /t REG_MULTI_SZ /d "{870013DD-FB1D-4BD7-A96C-1F0B7D31AF41}"
Dies fügt die fehlenden DeviceInterfaceGUID für einen Brick mit der UID 6K9mW5 hinzu.
Um die DeviceInterfaceGUID für deinen Brick hinzuzufügen muss im Befehl 6K9mW5 durch
die UID deines Bricks ersetzt werden.
Nach einem Reset des Bricks sollte Brick Daemon ihn jetzt finden. Es kann allerdings
vorkommen, dass der reg add Befehl aus unbekanntem Grund hängt. Falls dies
passiert muss Windows 10 IoT Core neugestartet und der Befehl erneut ausgeführt werden.
In unserem Forum gibt es einen Thread zu diesem Thema.
Der zweite Teil befasst sich dann mehr mit den technischen Details und den
Problemen Brick Daemon für Windows 10 IoT Core zu portieren.