FTDI: Windows-Treiber kann Bastelrechner beschädigen

Viele Bastelrechner, aber auch andere elektronische Helferlein mit USB-Schnittstelle verwenden häufig einen Chip von FTDI(öffnet im neuen Fenster) , um mit einem angeschlossenen Computer zu kommunizieren. Die Aufgabe des Chips ist es zumeist, die serielle Schnittstelle eines Microcontrollers über USB zugänglich zu machen. Dadurch können ohne viel Aufwand Kommandos und Daten übertragen werden. Unter Linux und OS X ist der notwendige USB-Treiber bereits vorhanden, unter Windows hingegen muss noch explizit ein Treiber von FTDI installiert werden.
Aufgrund der Popularität der FTDI-Chips werden diese mittlerweile auch ohne Lizenz nachgemacht beziehungsweise gefälscht. Wie nun Hackaday(öffnet im neuen Fenster) berichtet, versucht der aktuelle FTDI-Treiber für Windows (Version 2.12.0) diese nachgemachten Chips zu blocken. Erkennt der Treiber, dass es sich um einen Nachbau handelt, setzt er den USB Product Identifier (PID) im Speicher des Chips auf den Wert 0.
Die PID dient dem Betriebssystem dazu, ein per USB angestecktes Gerät zu erkennen und den für das Gerät zuständigen Treiber zu laden. Ist sie 0, schlägt der Vorgang zwangsläufig fehl. Deshalb funktionieren die derart geschädigten Geräte auch nicht mehr korrekt, wenn sie auf einem Rechner mit einem anderen Betriebssystem als Windows angesteckt werden. Als Folge ist zwischen dem Computer und dem angesteckten Gerät keine Kommunikation über USB mehr möglich.
Hinter diesem Verhalten des Treibers steckt vermutlich die Absicht von FTDI, auf Nachahmungen aufmerksam zu machen und die Konkurrenten vom Markt zu drängen. Diese könnten sich zwar weiter auf dem Markt halten, wenn sie eigene Treiber entwickeln und PIDs beantragen, das ist allerdings mit entsprechenden Kosten verbunden. Bedenklich ist dieses Vorgehen, weil der Treiber nicht vor der Manipulation an Nachahmer-Chips warnt. Ein Anwender kann so von einem Tag auf den anderen mit einem ganz oder teilweise funktionslosen Gerät dastehen, ohne sich der Ursache bewusst zu sein.
FTDI erklärt(öffnet im neuen Fenster) , diese Maßnahme sei durch die Nutzungsbedingungen des Treibers gedeckt, denen der Anwender bei der Installation zustimmen muss.
Eigene Geräte auf das Problem hin untersuchen
Wessen Gerät mit USB-Anschluss seit den einigen Tagen scheinbar grundlos nicht mehr korrekt funktioniert, sollte prüfen, ob es nicht eventuell am funktionsgestörten FTDI-Chip liegt. Während bei Bastelrechnern der Verweis auf die Nutzung eines FTDI-Chips meist Teil des Datenblattes ist, ist die Erkennung bei geschlossenen Geräten und Gadgets meist schwieriger. Eindeutig ist die Situation unter Windows, wenn für die Nutzung des Gerätes der FTDI-Treiber installiert werden musste. Allerdings kann das auch Teil einer anderen Installationsroutine gewesen sein - die Arduino IDE für Windows bringt zum Beispiel diesen Treiber ebenfalls mit.
Für die eigentliche Diagnose muss die PID des Gerätes ermittelt werden. Unter Windows wird die PID im Gerätemanager beim jeweiligen USB-Gerät unter Details angezeigt. Sie steht etwas verklausuliert in einer Zeichenkette wie dieser: USB\VID_3923&PID_12C0\6&2B4AB4AF&0&F . Die PID ist die Zeichenfolge nach &PID_ bis zum Schrägstrich. Unter Linux hilft das Kommandozeilenprogramm lsusb . Es listet für jedes angesteckte USB-Gerät die ID auf, wie zum Beispiel ID 1d6b:0002 . Die PID ist der Teil nach dem Doppelpunkt. Unter OS X findet sich die Information bei den USB-Einträgen der Systeminformationen im Programmordner Dienstprogramme .
Das Problem beheben
Unter anderem im Arduino-Forum(öffnet im neuen Fenster) wurde mittlerweile beschrieben, wie die Original-PID wieder hergestellt werden kann. Dabei besteht die Anfangsschwierigkeit darin, das Betriebssystem erst einmal zu überreden, überhaupt wieder mit dem USB-Gerät Daten auszutauschen.
Auch wenn danach das Gerät wieder funktioniert - an einen Windows-Rechner sollte es vorerst nicht wieder angeschlossen werden. Denn ein aktueller FTDI-Treiber würde die PID wieder auf 0 setzen. Auch wenn die Treiberinstallation schon längere Zeit zurückliegt, muss das kein Schutz sein. Denn der Treiber wird inzwischen auch von der Autoupdate-Funktion von Windows aktualisiert.
Auch Markengeräte können betroffen sein
Nicht nur billige Arduino-Klone von chinesischen Produzenten können von diesem Problem betroffen sein. Auch seriöse Produzenten verbauen unfreiwillig(öffnet im neuen Fenster) gelegentlich gefälschte oder nachgemachte Bauteile. Bei gut gemachten Chipfälschungen reicht eine reine Blickkontrolle oft nicht aus, um sie vom Original unterscheiden zu können.
Nachtrag vom 24. Oktober 2014, 10:55 Uhr
Laut Ars Technica(öffnet im neuen Fenster) hat Microsoft die beiden letzten Versionen des FTDI-Treibers aus dem Windows-Update entfernt.
Nachtrag vom 26. Oktober 2014, 14:35 Uhr
Mittlerweile hat auch FTDI selbst angekündigt(öffnet im neuen Fenster) , ihre Treiber zu überarbeiten. Eine neue Version des Treibers soll nachgeahmte Chips zwar immer noch erkennen, aber nicht mehr direkt verändern.



