Für Management-Aufgaben (Verwalten von Servern, Geräten, Inventur,…) benutze ich einen hier noch verfügbaren Thin-Client von IBM, einen NetVista 2800 8364-EXX. Ausgestattet mit 256 MB ECC SD-RAM, 2 GB Compact-Flash Karte als HDD und 266 Mhz Pentium I-CPU stellen sich da alleine beim Betriebssystem einige Fragen.
Neben einem Mini-Linux (LowArch, Crux i586, Debian i486) kommen hier zwei Mini-Windows Varianten in Frage: Windows FLP (Windows Fundamentals for Legacy PCs) oder Embedded (Standard).
Windows FLP ist ein abgespecktes Windows, welches auch auf alten Pentium-Maschinen durchaus lauffähig ist, konzipiert wurde es ursprünglich für Thin-Clients.
Windows XP Embedded (oder auch XPe) wurde für eingebettete Systeme entwickelt, darunter fallen beispielsweise Geldautomaten, Telefonzellen, Kassen, aber auch Thin-Clients. Zu Windows Embedded zählt auch ein „Target Designer“, mit welchem individuell Embedded-Abbilder für PC-Systeme erstellt werden können. In einer Datenbank befinden sich neben sämtlichen Software-Modulen (Systemsteuerung, Dienste, Anwendungen,…) auch Treiber (Chipsatz, Sound, VGA,..) und Interna, wie grundlegene Netzwerk-Funktionen oder der TCP-Stack.
Aus dem einfachen Grund, dass ich mit Windows FLP bereits (negative) Erfahrungen gemacht habe und weiß, dass für dieses Vorhaben FLP nicht geeignet ist und gerne etwas Neues lernen möchte, greife ich hier zu Windows XP Embedded und bastele mir mein eigenes Mini-Windows zusammen.
Die Windows XP Embedded Suite besteht in der Regel aus drei CD-ROM, von welcher im Moment nur die erste CD-ROM für uns interessant ist.
In folgender Reihenfolge werden die folgenden Tools installiert (ggf. muss die CD gewechselt werden):
Nach der Installation (und einem Reboot) befinden sich im Startmenü in einem Ordner namens „Microsoft Windows Embedded Studio“ diverse Programme, darunter auch der Target Designer, welchen wir aufrufen.
Mit diesem Programm lassen sich XP Embedded Images zusammenstellen, welche dann später auf Festplatten abgebildet und von Clients ausgeführt werden können. Das Ganze geschieht, windows-typisch, im Klick-Klick-Verfahren, wie wir gleich noch sehen werden.
Zuerst einmal wird ein neues Projekt angelegt, mit einem Klick auf den entsprechenden Button in der Symbolleiste öffnet sich ein Dialog, welcher nach einem Namen fragt. Nach dieser Eingabe wird das Projekt-Fenster angezeigt, in welchem rechts noch weitere Angaben gemacht werden können (siehe Screenshot rechts) - dazu zählen:
Im linken Bereich der Übersicht befinden sich Treiber, Software-Module und vorgefertigte Konfigurationen (Templates) im sogenannten Component Browser. Aus folgendem wählen wir nun zuerst aus:
Ein Doppelklick fügt das Element zu unserer Konfiguration hinzu. Das hinzugefügte Element ist für ein grundlegendes minimales Windows-System mit Login und Explorer zuständig, für mehr NICHT. Sämtliche „Extras“, wie Systemsteuerung, zusätzliche Anwendungen und Treiber werden erst nachher folgen.
Die benötigten Treiber müssen beispielsweise erst einmal herausgefunden werden. Hierzu haben wir zwei Möglichkeiten:
Falls auf dem NetVista 2800 bereits Windows XP oder FLP installiert ist, kann man die installierte Hardware über den Geräte-Manager herausfinden und somit die passenden gleichnamigen Komponenten heraussuchen. Allerdings übersieht man hier gerne mal was und vergisst das ein oder andere Geräte.
Das kann dann später zu Problemen führen, wird beispielsweise ein Controller-Treiber vergessen, kann das System nicht booten und bleibt in einem Blue-Screen hängen.
Viel einfacher und schneller ist das Herausfinden der Hardware mithilfe eines speziellen Dienstprogramms: TA.EXE, dem Windows Embedded Target Analyzer.
Dieses Programm erkennt beim Ausführen die verbaute Hardware und vermerkt sie in einer Datei. Diese Datei kann im Target Designer ganz leicht importiert werden, das Programm sucht dann voll automatisch die benötigten Treibermodule.
Allerdings setzt dies auch voraus, dass ein DOS- oder Windows-Betriebssystem auf dem Client ausgeführt wird. Dank BOOTP/TFTP lässt sich aber im Zweifelfall schnell ein MiniDos booten.
Das Programm TA.EXE befindet sich unter C:\Programme\Windows Embedded\utilities.
Die Treiber können nun entweder manuell aus dem Components Manager oder mithilfe der exportierten Hardware-Liste vollautomatisiert übernommen werden.
Bei letzterem ist es notwendig, im Menü die Elemente „File“ und „Import“ anzuwählen. Im folgenden Dialog wird die übertragene Geräte-Datei ausgewählt, der Assistent beginnt sofort, die Treiber-Datenbank nach den passenden Modulen zu durchsuchen.
Je nach Anzahl der verbauten Controller und Elemente kann dies einige Minuten in Anspruch nehmen. Nach dem Vorgang sollten sich im Projektfeld einige Komponenten mehr befinden.
<u>Hinweis:</u> Bei mir kam es einmal komischerweise beim Treiber-Import zu einem fehlerhaften Image, welches nicht bootete und den Client zum Einfrieren brachte. Als Workaround habe ich einfach ein zweites Projekt erstellt, die Treiber dort importiert und im eigentlichen Projekt dann manuell, basierend auf der Liste im zweiten Projekt, die fehlenden Treiber importiert (VGA, Ethernet, IDE). Als Zwischenschritt habe ich also erstmal das blanke Embedded-Abbild auf eine CF-Karte gespielt und den Client gebootet, um zu schauen, was fehlt. Ich vermute einmal, dass es zwischen einem Standard-Treiber und speziellen Treiber Probleme gibt, welche den Client zum Absturz bringen.
Mit einem Tastendruck auf F7 wird das Projekt zusammengestellt. Zuerst wird ein Abhängigkeitscheck durchgeführt und anschließend wird das Abbild in einem Order auf der Festplatte zusammengestellt. Der Abhängigkeitscheck sollte erfolgreich durchlaufen (Schlagwort: „No errors or warnings“ im Logfile), da fehlerhafte Abhängigkeiten in aller Regel zu einer fehlerhaften Zusammenstellung führen. In einem solchen Falle die Ausgaben des Debuggers beachten und durchlesen.
Nach der erfolgreichen Zusammenstellung können wir uns Gedanken über den Export auf die CF-Karte machen.
Damit der Client XPe booten kann, müssen lediglich die Dateien auf die Compact-Flash Karte kopiert werden. Darüber hinaus gibt es aber noch andere Vorraussetzungen:
Ersteres erreichen wird mit einem Partionierungstools, wie fdisk (UNIX-Tool, nicht das Windows-Pendant). Zweiteres kann über zwei Wege erfolgen - zum einen kann mit dem Windows-Tool fdisk ein MBR geschrieben werden, zum anderen kann aber auch einfach die Karte mit dem Dateisystem NTFS formatiert werden. Allerdings darf bei der Formatierung keinesfalls die Schnellformatierung gewählt werden, da bei dieser kein MBR auf das Medium geschrieben wird.
Wenn die Daten auf die CF-Karte geschrieben wurden, ist es wichtig die CF-Karte sicher zu entfernen.
Für meine Zwecke habe ich ein XP Embedded mit folgenden Spezifikationen aufgesetzt:
Die ausgewählten Komponenten sind rechts im Screenshot zu sehen.
Beim ersten Start von Windows XP Embedded entpackt der First Boot Agent (FBA) einige Dateien und nimmt die grundlegenede Konfiguration vor. Dies kann einige Minuten in Anspruch nehmen.
Nach diesem Schritt finden wir uns an einem Login-Prompt wieder, wie man es von einem herkömmlichen System gewohnt ist. Doch einige Klicks weiter bemerken wir, dass es sich hierbei nicht um ein vollwertiges XP, sondern um ein angespecktes XP Embedded handelt…
Je nach Konfiguration trifft man nun auf nur einige wenige Elemente im Startmenü. Bei meiner Konfiguration handelt es sich hierbei um:
Ein Video vom für diesen Museumsrechner relativ zügigen Bootvorgang findet sich auf meinem Blog: http://blog.christian-stankowic.org/?p=1702
Falls Fehler bei der Erstellung des Images auftreten, sind dies in aller Regel Abhängigkeitsprobleme. Diese werden vor dem eigentlichen Erstellen des Abbilds geprüft, kommt es zu Fehlern gibt der Debugger aus, wo ein Fehler vorliegt.
Der häufigste Fehler ist das doppelte Hinzufügen eines Moduls, was auch durch ein „#2“ im Namen erkennbar ist. Insbesondere beim Arbeiten mit vordefinierten Templates tritt dies gerne auf, da das Template schon eine Reihe von Modulen mitbringt. Im Eigenschaften-Dialog des jeweiligen Templates ist eine Liste einsehbar und einzelne Module können auch durch Setzen/Löschen eines Hakens aktiviert bzw. deaktiviert werden.
Stimmen die Abhängigkeiten, kann es beim Booten zu Problemen kommen. Etwa, wenn man ein FAT32-Medium ohne gültigen MBR zu benutzen versucht. In diesem Fall stürzt XP Embedded mit dem Fehlercode „0x0000007B“ ab. In diesem Fall gilt es das Medium zu überprüfen. Mithilfe von FDISK kann ein MBR hinzugefügt werden, eine Alternative stellt das Benutzen des NTFS-Dateisystems dar. Wie vorhin schon erwähnt, darf hier aber keinesfalls die Schnellformatierung benutzt werden, da es ansonsten aufgrund des fehlenden MBRs wieder zu diesem Fehler kommt (Die Schnellformatierung fügt keinen MBR hinzu!).
Kommt es immer noch zu Blue Screens oder Fehlern, stimmt wahrscheinlich etwas mit der Treiberzusammenstellung nicht, folgendes würde ich dann prüfen:
Falls auch das nichts hilft, kann ein Blick in die Linkliste am Ende dieses Artikels helfen.