05.03.2013 Aufrufe

Windows XP Embedded und - FZI

Windows XP Embedded und - FZI

Windows XP Embedded und - FZI

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Windows</strong> <strong>XP</strong> embedded mit<br />

.NET Framework 2.0 für Fischertechnik<br />

Johannes Michler, Marc Schanne (michler|schanne@fzi.de)<br />

Microsoft <strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> inklusive<br />

SP2 Feature Pack 2007 mit Fischertechnik-<br />

DLL <strong>und</strong> .NET-Wrapper.<br />

Zusammenfassung<br />

Dieser Artikel befasst sich mit dem Aufsetzen<br />

von <strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> inklusive der<br />

Unterstützung für das .NET Framework.<br />

Zudem wird das Integrieren der USB-Treiber<br />

für die Fischertechnik Steuerschnittstelle Robo<br />

Interface beschrieben.<br />

Die Beschreibung umfasst folgende Vorgänge:<br />

Einrichten eines Laptops unter <strong>Windows</strong><br />

<strong>XP</strong> auf dem die <strong>XP</strong> <strong>Embedded</strong> (<strong>XP</strong>e)<br />

Tools installiert werden.<br />

Erstellen eines <strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong><br />

Images mit Unterstützung für das .NET<br />

Framework <strong>und</strong> Integration des<br />

Fischertechnik USB Treibers für das<br />

ROBO Interface.<br />

Nutzung von <strong>Windows</strong> PE, um die Daten<br />

auf einen Zielrechner zu übertragen.<br />

Motivation<br />

<strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> bietet gegenüber<br />

einem normalen <strong>Windows</strong> <strong>XP</strong> Professional,<br />

auf dem das System beruht, den Vorteil der<br />

Modularität. Diese ermöglicht es, ein System<br />

zu erstellen, welches genau die benötigten<br />

Komponenten enthält. Dadurch entsteht ein<br />

kleineres, sichereres <strong>und</strong> auf älterer Hardware<br />

auch schnelleres System. In der neuen Version<br />

von <strong>Windows</strong> <strong>XP</strong>e ist zudem das .NET<br />

Framework 2.0 vollständig enthalten. Die<br />

eingeschränkte Compact Framework Variante<br />

ist ebenfalls verfügbar <strong>und</strong> kann als Modul<br />

beim Erzeugen des Images ausgewählt werden.<br />

<strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> ist wie die normale<br />

Professional-Version nur auf x86 Hardware<br />

lauffähig 1 . Dies hat den Vorteil, dass<br />

gewöhnliche <strong>Windows</strong>treiber, in unserem Fall<br />

1 im Gegensatz zu <strong>Windows</strong> CE, welches auch für<br />

verschiedene andere CPUs wie ARM verfügbar ist.<br />

der USB Treiber für die Fischertechnik-Steuerschnittstelle,<br />

der lediglich in binärer Form<br />

vorliegt, ohne Probleme nutzbar sind.<br />

Ziel des Projektes ist es, ältere Hardware für<br />

die Steuerung eines Fischertechnik Roboters<br />

unter <strong>Windows</strong> <strong>XP</strong>e einzusetzen. Als<br />

Zielrechner dient dabei ein ausrangiertes<br />

Medion Notebook. Für die Zukunft ist evtl. die<br />

Nutzung eines „echten“ x86-<strong>Embedded</strong>-<br />

Boards geplant.<br />

Teil 1: Gr<strong>und</strong>sätzliches<br />

Vorgehen zum Erstellen eines<br />

<strong>XP</strong>e-Images<br />

Dieser Teil erläutert wie <strong>XP</strong> <strong>Embedded</strong> auf<br />

dem Entwicklungsrechner installiert, der<br />

Zielrechner vorbereitet <strong>und</strong> für diesen eine<br />

Hardwarekomponente für <strong>XP</strong>e erstellt wird.<br />

Installation von <strong>XP</strong> <strong>Embedded</strong> auf<br />

dem Entwicklungsrechner<br />

<strong>XP</strong> <strong>Embedded</strong> mit Service Pack 2 besteht aus 3<br />

CDs, zusätzlich gibt es das <strong>XP</strong>e Feature Pack<br />

2007.[1]<br />

Zunächst müssen von CD 1 der Datenbankserver<br />

<strong>und</strong> die <strong>XP</strong> <strong>Embedded</strong> Tools installiert<br />

werden. Anschließend kann von CD 2 die<br />

eigentliche Komponentendatenbank erstellt<br />

werden. Erst jetzt lässt sich das Service Pack 2,<br />

welches sich auf CD 3 befindet, installieren.<br />

Dieses besteht zunächst aus einem Update für<br />

die SQL Desktop Edition. Anschließend<br />

werden neuere Tools <strong>und</strong> schließlich das<br />

Update für die eigentliche Datenbank<br />

eingespielt. Das abschließend zu installierende<br />

Feature Pack besteht ebenfalls wieder aus einer<br />

neuen Version der Tools <strong>und</strong> der<br />

Komponentendatenbank.


Auswahl eines Zielrechners<br />

Für die Einrichtung des Zielrechners wird die<br />

<strong>Windows</strong> PE 2 Umgebung genutzt. Hierfür<br />

sollte der Rechner mit einer Netzwerkkarte<br />

ausgerüstet sein, die ohne Treiber unter<br />

<strong>Windows</strong> <strong>XP</strong> (<strong>und</strong> damit auch unter <strong>Windows</strong><br />

PE) erkannt wird. Außerdem sollte der<br />

Arbeitsspeicher mindestens 256MB groß sein,<br />

da es sonst zu Problemen bei der Installation<br />

des .NET Frameworks während des ersten<br />

Startvorgangs kommen kann.<br />

Partitionieren <strong>und</strong> Formatieren der<br />

Festplatte<br />

Um die Festplatte des Zielsystems zu<br />

formatieren eignet sich <strong>Windows</strong> PE, welches<br />

zum Beispiel auf CD 1 von <strong>Windows</strong> <strong>XP</strong><br />

<strong>Embedded</strong> zu finden ist. Sollte sich auf der<br />

Festplatte noch keine aktive <strong>Windows</strong>partition<br />

befinden, kann eine solche mit folgenden<br />

Befehlen erstellt werden.<br />

DISKPART<br />

SELECT DISK 0 CLEAN CREATE PARTITION PRIMARY<br />

LIST PARTITION<br />

SELECT PARTITION 1 ACTIVE<br />

EXIT<br />

EXIT<br />

Dadurch wird eine neue, standardmäßig 16 GB<br />

große Partition erstellt, als aktiv markiert <strong>und</strong><br />

anschließend Diskpart <strong>und</strong> <strong>Windows</strong> PE<br />

beendet. Nach dem Neustart (wieder mit der<br />

<strong>Windows</strong> PE CD) lässt sich die neu erstellte<br />

Partition formatieren.<br />

FORMAT C: /FS:NTFS /q<br />

Erfassen der Hardwareinformationen<br />

des Rechners<br />

Um ein <strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> Image für ein<br />

Gerät zu erstellen, kann auf dem Zielrechner<br />

das Target Analyzer Tool (tap.exe) genutzt<br />

werden, das automatisch Informationen über<br />

die verwendete Hardware sammelt. Es ist auf<br />

der <strong>Windows</strong> PE CD im <strong>XP</strong>e Ordner<br />

vorhanden. Durch einen Aufruf auf dem<br />

Zielsystem kann eine Devices.pmq XML-<br />

Datei erstellt werden, die eine Beschreibung<br />

aller identifizierter Hardwareteile enthält.<br />

2 <strong>Windows</strong> PE (Preinstallation Environment) ist ein<br />

abgespecktes <strong>Windows</strong>, welches sich von<br />

verschiedenen externen Medien booten lässt.<br />

Diese Datei muss auf den Entwicklungsrechner<br />

kopiert werden. Dazu kann zu diesem wie folgt<br />

eine Netzwerkverbindung hergestellt werden.<br />

NET USE Z: \\IP\<strong>XP</strong>e /USER:HOST\Administrator<br />

<strong>XP</strong>e ist dabei eine Freigabe auf dem<br />

verwendeten Host-Rechner HOST mit der IP-<br />

Adresse IP.<br />

Jetzt kann (unter der Annahme dass X die<br />

<strong>Windows</strong> PE CD enthält <strong>und</strong> Z das neu<br />

verb<strong>und</strong>ene Netzlaufwerk ist) die<br />

Konfiguration folgendermaßen erfasst werden.<br />

X:\<strong>XP</strong>E\TAP /O Z:\VPC-HW.PMQ<br />

Die folgenden Schritte sind wieder auf der<br />

Entwicklungsmaschine auszuführen.<br />

Erstellen der Hardwarekomponente<br />

für den Zielrechner<br />

Der Component Designer ermöglicht das<br />

erstellen neuer Hardwarekomponenten für<br />

<strong>Windows</strong> <strong>XP</strong>e, zum Beispiel aus der oben<br />

erstellten XML-Hardwarebeschreibung. Dazu<br />

wird diese Datei mittels File – Import<br />

eingelesen. Der neu erstellten Komponente<br />

kann jetzt ein sinnvoller Name gegeben<br />

werden, hier z.B. medion-hw.<br />

Um die Konfiguration der Komponente<br />

abzuschließen, muss nun noch unter Prototype<br />

mittels Browse… <strong>und</strong> dort unter Software-<br />

Test & Development die Selector Prototype<br />

Component in der neusten Version (.3333)<br />

ausgewählt werden. Abschließend wird die neu<br />

erstellte Komponente mittels File – Save als<br />

SLD Datei gespeichert <strong>und</strong> der Component<br />

Designer vorerst beendet.<br />

Importieren der Komponente in die<br />

<strong>XP</strong>e-Datenbank<br />

Die eben erstelle SLD-Datei kann jetzt in die<br />

<strong>XP</strong>-<strong>Embedded</strong> Datenbank importiert werden.<br />

Dies geschieht im Component Database<br />

Manager unter Import… Dort wird die neu<br />

erstellte SLD-Datei ausgewählt. Das<br />

Repository root sollte bereits auf<br />

\\HOST\Repositories voreingestellt sein<br />

(vergleiche Abb.1).<br />

Die Vorbereitungen zur Erstellung eines<br />

<strong>Windows</strong> <strong>XP</strong>e Images für das Notebook sind<br />

nun abgeschlossen.


Teil2: Erstellen <strong>und</strong> Integrieren<br />

der Fischertechniktreiber-<br />

Komponente<br />

Dieser Teil beschäftigt sich mit der<br />

Integration des Fischertechnik<br />

Treibers.<br />

Vorbereitung des Treibers<br />

Zunächst muss der Fischertechnik-<br />

Treiber, der beispielsweise im<br />

Verzeichnis Driver der ftlib.zip<br />

Bibliothek [2] zu finden ist, in ein<br />

beliebiges Verzeichnis entpackt<br />

werden. In diesem sollte sich nun<br />

die Konfigurationsdatei ftusb.inf<br />

sowie der eigentliche Treiber<br />

ftusb.sys befinden.<br />

Erstellen von Komponente<br />

<strong>und</strong> Repository<br />

Im Component Designer wird der<br />

Treiber in das Image integriert.<br />

Dazu wird wieder unter File –<br />

Import zunächst der Typ auf inffile<br />

gesetzt <strong>und</strong> anschließend die<br />

ftusb.inf aus dem vorherigen Schritt<br />

ausgewählt. Dadurch werden drei<br />

neue Treiberkomponenten erstellt:<br />

Robo Interface, I/O Extensions <strong>und</strong><br />

RF Data Link.<br />

Nun muss mittels Rechtsklick auf<br />

Repositories - Add Repository<br />

noch eine Datenablage für die<br />

eigentliche Treiberdatei erstellt<br />

werden. Diese wird anschließend<br />

mit Browse (neben dem Source<br />

Path Textfeld) mit dem Verzeichnis<br />

des Treibers gefüllt <strong>und</strong> mit einem<br />

Namen (z.B. Fischertechnik USB<br />

Treiber) versehen (siehe Abb. 1).<br />

Abschließend muss das neu erstellte<br />

Repository zu den eigentlichen<br />

Treiberkomponenten hinzugefügt werden.<br />

Dazu öffnet man diese nacheinander <strong>und</strong> wählt<br />

unter Repositories… den Fischertechnik<br />

USB Treiber aus (vergleiche Abb. 2).<br />

Auch diese Komponente wird nun wieder in<br />

einem beliebigen Ordner gespeichert <strong>und</strong><br />

abschließend im Component Database<br />

Manager genauso wie die medion-hw<br />

Komponente importiert. Dadurch sollte unter<br />

\\HOST\Repositories ein neues Verzeichnis<br />

Abb. 1: Repository des Treibers<br />

Abb. 2: Treiberkomponente<br />

für das Fischertechnik-Repository erstellt<br />

werden, in dem sich die ftusb.sys befindet.<br />

Teil3: Erstellen <strong>und</strong> Kopieren<br />

des Images auf den Zielrechner<br />

Im nächsten Schritt kann nun das <strong>XP</strong>e-Image<br />

konfiguriert <strong>und</strong> erstellt werden. Anschließend<br />

wird es mittels des Robocopy Tools unter<br />

<strong>Windows</strong> PE auf den Zielrechner kopiert


Erstellen des <strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong><br />

Images<br />

Das eigentliche Image wird mit dem Target<br />

Designer konfiguriert <strong>und</strong> erstellt. Zunächst<br />

wird ein neues Projekt mittels File – New<br />

angelegt. Nun können einzelne Komponenten<br />

aus der Komponentenliste hinzugefügt werden.<br />

Es empfiehlt sich zunächst die im vorherigen<br />

Schritt erstellte Hardwarekomponente, in<br />

unserem Fall medion-hw, mittels Rechtsklick<br />

<strong>und</strong> Add hinzuzufügen. Außerdem sind<br />

folgende Komponenten notwendig:<br />

Kiosk/Gaming Console unter Design<br />

Templates<br />

Runtime Quick Start Helper unter<br />

Software / Test & Development<br />

.NET Framework 2 aus der selben<br />

Rubrik<br />

Um das Image zu erstellen, werden zunächst<br />

mit F5 eventuelle Abhängigkeiten überprüft.<br />

Anschließend kann mit F7 das Image selbst<br />

erstellt werden.<br />

Im Folgenden wird wieder angenommen, dass<br />

der Zielordner des Images als <strong>XP</strong>e auf dem<br />

Host-Rechner freigegeben wurde.<br />

Robocopy installieren<br />

Zum kopieren des Images auf den Zielrechner<br />

wird das Tool Robocopy verwendet. Es findet<br />

sich beispielsweise im <strong>Windows</strong> Server 2003<br />

Resource Kit.[3]<br />

Nachdem dieses auf dem Host-Rechner<br />

installiert wurde kann das Programm von<br />

C:\Programme\<strong>Windows</strong> Resource Kits\ Tools\<br />

robocopy.exe in das Image-Verzeichnis kopiert<br />

werden.<br />

Es empfiehlt sich, dort auch einen Ordner<br />

Fischertechnik zu erstellen, in dem sich das<br />

Testprogramm aus der FTLib <strong>und</strong> evtl. eine<br />

selbstgeschrieben kleine Anwendung befindet.<br />

Dieser Ordner wird dann durch Robocopy<br />

ebenfalls auf den Zielrechner kopiert, wodurch<br />

das spätere Kopieren entfällt.<br />

Übertragen des <strong>XP</strong> <strong>Embedded</strong> auf<br />

den Zielrechner<br />

Das Image kann jetzt auf den Zielrechner<br />

übertragen werden. Unter obiger Annahme,<br />

dass sich die Daten unter \\HOST\<strong>XP</strong>e<br />

befinden <strong>und</strong> dieses Verzeichnis im <strong>Windows</strong><br />

PE als Laufwerk Z eingeb<strong>und</strong>en ist, geschieht<br />

dies mit folgendem Befehl.<br />

Z:\ROBOCOPY z:\ c:\ *.* /E<br />

<strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> starten<br />

Nachdem der Zielrechner mit Exit neu<br />

gestartet <strong>und</strong> die <strong>Windows</strong> PE CD entfernt<br />

wurde, startet der Rechner das neue <strong>Windows</strong><br />

<strong>XP</strong> <strong>Embedded</strong>. Dabei wird zunächst der First<br />

Boot Agent ausgeführt, der unter anderem die<br />

Registrierung erstellt <strong>und</strong> das .NET<br />

Framework installiert. Anschließend startet der<br />

Rechner automatisch neu, die Installation ist<br />

abgeschlossen <strong>und</strong> man kann sich als<br />

Administrator ohne Passwort anmelden.<br />

Fischertechnik-Test<br />

Abschließend kann man auf dem Gerät<br />

beispielsweise die Steuerungssoftware von<br />

Fischertechnik ausführen, um zu prüfen ob das<br />

USB Gerät korrekt erkannt wurde. Auch jede<br />

andere mit dem .NET Framework erstellte<br />

Anwendung für Fischertechnik sollte genauso<br />

wie auf einem „normalen“ <strong>Windows</strong> <strong>XP</strong><br />

funktionieren.<br />

Referenzen<br />

Das Vorgehen zum Erstellen eines <strong>XP</strong><br />

<strong>Embedded</strong> Abbildes ähnelt dem Vorgehen von<br />

Mario Biazzi für virtuelle PCs [4].<br />

Weitere Informationen zu <strong>Windows</strong> <strong>XP</strong><br />

embedded finden sich auf der Homepage [5],<br />

insbesondere die Tutorien [6] erweisen sich als<br />

sehr hilfreich.<br />

Vertiefendes findet sich in der MSDN Library<br />

zum Thema <strong>Windows</strong> <strong>XP</strong> <strong>Embedded</strong> [7], zum<br />

Beispiel zum Thema Remote Debugging [8],<br />

in der „Get <strong>Embedded</strong> Kolumne“ [9].<br />

[1] go.microsoft.com/?linkid=5705014<br />

[2] www.fischertechnik.de/de/computing/download/zip/<br />

FtLib_V1_61a.zip<br />

[3] www.microsoft.com/downloads/details.aspx?<br />

FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd<br />

[4] msdn2.microsoft.com/en-us/library/aa460095.aspx<br />

[5] msdn.microsoft.com/embedded/<br />

[6]msdn2.microsoft.com/en-us/embedded/aa731297.aspx<br />

[7] msdn2.microsoft.com/en-us/library/ms950428.aspx<br />

[8] msdn2.microsoft.com/en-us/library/aa459154.aspx<br />

[9] msdn2.microsoft.com/en-us/library/ms376786.aspx

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!