Windows XP Embedded und - FZI
Windows XP Embedded und - FZI
Windows XP Embedded und - FZI
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