FireWire 800 mit Windows XP SP2
Informationen zum Geschwindigkeitsproblem

»Zurück zur Tech Info Übersicht
»Update: MS SP2 Patch erhältlich

Hinweis

Vor dem Release einer neuen Hardware führt RME umfangreiche Tests nicht nur der Hardware selbst, sondern auch ihres Zusammenspiels mit anderer Hardware durch. Beim Test des Fireface 800 sind wir auf Hardwarefehler bei diversen Herstellern gestossen. Nähere Informationen enthält die Tech Info Kompatibilitätsprobleme mit FireWire 800 Hardware.

FireWire 800 mit Windows XP SP2

FireWire 800 (1394b) wurde unter Windows XP SP1 nicht explizit unterstützt. Es funktionierte trotzdem, wenn auch nicht in jedem Fall mit der vollen 800er Performance. Mit Service Pack 2 hat sich Microsoft entschlossen, FireWire 800 nicht mehr zu 'ignorieren', sondern entsprechend der bisherigen OHCI-Spezifikation (Open Host Controller Interface) korrekt zu behandeln. Korrekt heisst bei Microsoft derzeit: aus Sicherheits- und Kompatibilitätsgründen in den langsamsten Modus schalten, also S100, entsprechend 100 MBit pro Sekunde.

Microsoft begründet dieses Vorgehen mit einer unklaren OHCI-Spezifikation. Tatsächlich gibt es im OHCI auf den ersten Blick keine eindeutige Kennung für 1394b. Gängige FireWire 800 Chips senden während der Bus-Initialisierung im Self-ID-Paket Null einen 2-Bit Geschwindigkeits Code von 0x3 (statt 0x2 = S400). Dieser ist in der Spezifikation jedoch lediglich als 'Reserved' bezeichnet. Auf den zweiten Blick hat Microsoft einfach nicht richtig hingeschaut, denn es werden noch weitere Self-ID-Pakete gesendet. Im Self-ID-Paket Acht wird die Geschwindigkeit mit Hilfe eines 3-Bit Codes korrekt mit 0x3 = S800 angegeben. Dieses Paket Acht wird bereits im '1394a supplement' definiert, und ist daher nicht als Neuerung von FireWire 800 anzusehen.

Das Vorgehen von Microsoft ist daher mindestens umstritten. Auf jeden Fall ist es aber ein Musterbeispiel an Weltfremdheit und Bürokratentum. Denn die Notwendigkeit, auf S100 herunterzuschalten, existiert praktisch nicht, weil es Geräte, die mit einer solchen Kennung ausgestattet nur S100 unterstützen, gar nicht gibt. Zumindest ist uns keines bekannt, und Microsoft hat diese Änderung scheinbar nicht durchgeführt weil es Beschwerden über Inkompatibilitäten gab. Man muss sich einfach nur wundern...

Rettung fürs Fireface

In diesem Fall zeigt sich einmal mehr, welchen Vorteil es hat, auf frei konfigurierbare Hardware zu setzen. RME verwendet seit Jahren FPGAs (Field Programmable Gate Arrays), die sich jederzeit durch ein Flash-Update in vollkommen andere Schaltungen verwandeln lassen. Dies ermöglichte es uns, über ein kombiniertes Flash- und Treiberupdate kompatibel zu SP2 zu werden. Derzeit ergibt sich dabei folgendes Verhalten:

  • Das Fireface 800 arbeitet an 1394b-Interfaces normalerweise mit FireWire 800, also 800 MBit/s
     
  • Wird jedoch SP2 detektiert, sinkt die Geschwindigkeit nicht auf S100, sondern in einer Richtung nur auf S400. In der anderen bleibt sogar S800 aktiv. Damit ist das Fireface 800 weiterhin voll betriebsbereit, so als wäre es an einem FireWire 400 Interface (1394a) angeschlossen.

Dieses Verhalten gilt seit Firmware 1.38 und Treiber 1.1. Der Fix führt für die meisten Anwender zum Erfolg, da FireWire 800 derzeit noch recht selten ist. Wer jedoch zusätzlich zum Fireface auch eine externe Festplatte effizient betreiben möchte, kommt um FireWire 800 kaum herum. Und hat ein Problem, denn unser Fix betrifft natürlich nur das Fireface, nicht dagegen Produkte anderer Hersteller. Eine externe Festplatte wird also in SP2 weiterhin nur mit S100* betrieben.

* Die typische Datentransferrate einer externen Festplatte über FireWire 800 mit SP1 liegt bei fast dem gleichen Wert wie über PCI, bzw. wie am internen IDE Controller. Bei unserer Testplatte, einer älteren IBM, waren es 39 MByte/s. Mit SP2 sinkt der Wert auf 10 MByte/s.
 

Andere Hersteller

Spezielle Anpassungen anderer Hersteller sind natürlich auch möglich. Beispielsweise gibt es von LaCie bereits ein Firmwareupdate für deren FireWire 800 Festplatten, welches unter SP2 für volle Performance sorgt. Bei näherer Betrachtung scheint es sich jedoch in Wirklichkeit um die Installation eines FireWire-Filtertreibers zu handeln, der speziell für Festplatten von LaCie die 800er Erkennung Microsofts aushebelt. Seit Oktober bietet nun auch Macpower ein Update an. Obwohl externe 800er Festplatten alle den gleichen Oxford Chip benutzen (922), ist ein solcher Fix natürlich auf den jeweiligen Hersteller begrenzt. Wer also eine NoName PCI-Karte oder ein NoName Festplattengehäuse besitzt, wird vermutlich nie einen Fix erhalten...

Zurück zu SP1?

Muss man also SP2 deinstallieren, um mit der bisherigen Performance arbeiten zu können? Nein, es reicht den alten FireWire-Treiber des Betriebssystems zu installieren. Und von diesem müssen sogar nur zwei Dateien ausgewechselt werden [1]. So funktioniert's:

  • Wechseln Sie zum versteckten Verzeichnis Windows\Inf und kopieren Sie die Datei 1394.inf in ein neues Verzeichnis, z. B. \1394_fix.

Vor dem Update zu SP2:

  • Wechseln Sie zum Verzeichnis Windows\system32\drivers und kopieren Sie die Datei ohci1394.sys und 1394bus.sys nach \1394_fix. Diese Dateien haben ein Datum um August 2002, und zeigen in den Dateieigenschaften 'SP1'.

Wenn Sie SP2 bereits installiert haben: die alte ohci1394.sys und 1394bus.sys finden sich im Archiv Windows\Driver Cache\i386\sp1.cab. Kopieren Sie die Dateien aus dem Archiv in das Verzeichnis \1394_fix.

Wenn Sie SP1 nicht installiert hatten: die Dateien finden sich auch in driver.cab, sind dann aber eine ältere Version, die wir nicht getestet haben.

  • Installieren Sie das SP2 Update
     
  • Wechseln Sie in das Verzeichnis Windows\system32\drivers und kopieren die folgenden Dateien nach \1394_fix: arp1394.sys, enum1394.sys, nic1394.sys

Dies sind Dateien vom Service Pack 2. Es ist nicht notwendig, alle alten FireWire Treiberdateien zu installieren. Einige haben sich gar nicht verändert, andere sind nur für Netzwerk zuständig.

Diese Dateien finden sich auch im Archiv sp2.cab, am oben beschriebenen Ort.

  • Benennen Sie sp2.cab um in sp2_dead.cab.

Dies ist notwendig, da Windows einen netten Sicherheitsmechanismus enthält, der verhindern soll, dass ein DAU aus Versehen wichtige Treiberdateien mit einer älteren Version überschreibt, oder sie einfach löscht. Wenn Sie also versuchen, den Mix aus Treiberdateien im Verzeichnis \1394_fix zu installieren, wird Windows automatisch die neueren Dateien aus dem Archiv sp2.cab installieren!

  • Stellen Sie sicher dass das Fireface ausgeschaltet ist, und sich kein weiteres externes Gerät am FireWire Bus befindet.
     
  • Über Systemsteuerung /System /Gerätemanager /FireWire Controller (OHCI xxx, 1394 oder ähnlich) /Eigenschaften /Treiber gelangen Sie zur Schaltfläche 'Treiber aktualisieren'. Wählen Sie 'Nein, diesmal nicht', 'Software von einer Liste installieren...', dann 'Weiter', dann 'Nicht suchen, sondern den zu installierenden Treiber selbst wählen', dann 'Datenträger'. Verweisen Sie auf das Verzeichnis \1394_fix. Fahren Sie fort.
     
  • Windows fragt nun nach dem Pfad zur Datei ohci1394.sys und 1394bus.sys. Es möchte die neuere Version installieren (siehe oben). Verweisen Sie erneut zum Verzeichnis \1394_fix.

Das war's. Sie können jetzt in den Treiberdetails überprüfen, dass alle Treiberdateien aus dem SP2 stammen, während die Dateien ohci1394.sys und 1394bus.sys aus dem SP1 stammen. Nun heisst es Neustart, Fireface einschalten, und Aufnahme/Wiedergabe überprüfen.

Schliesslich können Sie das Archiv sp2_dead.cab wieder in sp2.cab umbenennen. Windows wird nicht mehr versuchen die neuere Datei zu kopieren, ausser Sie installieren die Treiber des FireWire Controllers erneut. Daher macht es Sinn, den Driver Cache Sicherheitsmechanismus wieder zu aktivieren.

[1] In der ersten Version dieser Tech Info wurde nur die Datei ohci1394.sys ausgetauscht. Damit verbessert sich der Durchsatz auf gute S400. Doch erst die zusätzliche 1394bus.sys aktiviert volle 800 MBit/s.

Weitere Informationen zu diesem Thema

http://www.lacie.com/download/drivers/ReadMeFW800SP2.pdf

http://www.macpower.com.tw/news/2004/10/07/896

http://www.orangeware.com/Bin/1394b.pdf

http://www.de.tomshardware.com/network/20040726/index.html

Letzte Aktualisierung: 12.10.2004

MS Patch für FireWire 800 und SP2 erhältlich

Am 17. Dezember 2004 veröffentlichte Microsoft einen Knowledge Base Artikel über das FW800 Geschwindigkeitsproblem unter SP2. Darin wird bestätigt, dass es sich um ein Problem von SP2 handelt. Zur gleichen Zeit veröffentlichte MS ein manuell zu installierendes Treiberupdate. Laut Artikel wird dieses Update in späteren Updates und Hotfixes nicht enthalten sein. Es muss also - wenn erforderlich - immer manuell installiert werden. Link zum Artikel:

http://support.microsoft.com/kb/885222/en-us (Ersparen Sie sich die deutsche Version...)

Quote: After you install Windows XP Service Pack 2, some 1394 devices (such as digital cameras that use S400 speed) may not perform as expected. Install this update to help prevent this issue.

Beseitigt das Update die Firewire 800 Probleme?

Ja, tut es. Fast...

Der Patch installiert eine neue ohci1394.sys, und fügt den Eintrag SidSpeed zum OHCI Controller in der Registry hinzu. Die Dokumentation von Microsoft zu diesem Patch ist enttäuschend. Hier sind unsere eigenen Ergebnisse:

  • Nach der Installation dieses Patches scheinen No-Name FireWire Geräte, die im asynchronen Modus arbeiten, in der Lage zu sein S800 zu nutzen. Ohne weitere Firmware Updates etc. Die IBM Festplatte in dem von uns benutzten No-Name Festplattengehäuse (SpeedStar) erreicht nun 51 MByte/s (38 bei S400, 10 bei S100). Der Patch ergibt hier also scheinbar volle Geschwindigkeit. Erwähnenswert ist, dass der Wert von SidSpeed keinen (in Worten: Nullkommanull) Einfluss auf die Transferrate hatte. Sie blieb grundsätzlich bei 51 MB.
     
  • Nach der Installation dieses Patches werden No-Name FireWire Geräte, die im isynchronen Modus arbeiten und höhere Transferraten unterstützen, nicht mehr auf S100 herunter geschaltet, sondern auf S400. Das hilft natürlich auch dem Fireface, aber erst unser eigener Workaround ergibt S800 (zumindest in einer Richtung). In diesem Fall kontrolliert der SidSpeed-Wert die Transferrate. Isochrone Geräte werden auf S100, S200 oder S400 gesetzt, wenn der Eintrag auf 0, 1 oder 2 gesetzt wird. Laut MS soll ein Wert von 3 das alte Verhalten von SP1 erzeugen - das ist nicht der Fall. Während SP1 volle S800 erlaubte, ist unter SP2 mit diesem Patch nur S400 möglich.

Was bedeutet das nun alles?

RME empfiehlt eine Installation dieses Updates. Es hilft kompatibel zu bleiben, und stellt nahezu die volle Geschwindigkeit beim Betrieb des Firefaces bereit. Nur Anwender mit drei Firefaces könnten mittels des alten SP1 ein Quäntchen mehr Performance erzielen, sich aber dafür an anderer Stelle Probleme einhandeln. Im Allgemeinen wird die Kombination aus RMEs Fix (enthalten in Treiber/Firmware), SP2 und diesem MS Update einen problemlosen Betrieb von bis zu drei Firefaces erlauben, als auch eine Kombination mit den meisten anderen FW-Geräten.

Letzte Aktualisierung: 31.01.2005

Copyright © Matthias Carstens.
Alle Angaben in diesem Tech Info sind sorgfältig geprüft, dennoch kann eine Garantie auf Korrektheit nicht übernommen werden. Eine Haftung von RME für unvollständige oder unkorrekte Angaben kann nicht erfolgen. Weitergabe und Vervielfältigung dieses Dokumentes und die Verwertung seines Inhalts sind nur mit schriftlicher Erlaubnis von RME gestattet.
 

Hauptseite    News    AD/DA-Wandler    Digitalkarten    DIGICheck    Zubehör
Support    RME Newsgroup    Rund um RME    Bezugsquellen    Downloads    Links

Copyright © 2004 RME. Alle Rechte vorbehalten. RME ist ein eingetragenes Markenzeichen.
Diese Website enthält Namen und Marken anderer Firmen