USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers
So debuggen Sie USB-Mass-Storage-Bulk-Only-Transport-Fehler mit Command Block Wrappern, Command Status Wrappern und Sense-Daten.
USB-Mass-Storage-Geräte wirken aus User-Sicht einfach: "Flash-Drive, Data-Logger, Firmware-Update-Device oder Embedded-Storage-Gadget anstecken, und ein Disk erscheint. Wenn es scheitert, ist der Fehler oft vage: Device not ready, I/O-Fehler, Format-Prompt, Mount-Fehler oder verschwindender Disk." Darunter nutzen viele Geräte Bulk-Only Transport. BOT hat einen erkennbaren Kommando-Flow: "Command Block Wrapper, Data-Phase, Command Status Wrapper. Bricht dieses Muster, kann der Capture meist zeigen, wo."
Den BOT-Flow verstehen
Das normale Muster:
- Host sendet CBW über Bulk-OUT
- optionale Data-Phase über Bulk-IN oder Bulk-OUT
- Gerät sendet CSW über Bulk-IN
Der CBW trägt ein SCSI-Kommando. Der CSW meldet den Kommando-Status. Scheitert das Kommando, gibt der Host möglicherweise REQUEST SENSE aus, um den Grund zu erfahren.
Nützliche Evidence:
- CBW-Signatur
- Command-Tag
- Data-Transfer-Länge
- Richtungs-Flag
- SCSI-Kommando-Bytes
- Data-Phase-Länge
- CSW-Signatur
- CSW-Status
- Residue
- Sense-Daten nach Fehler
Passen die Tags nicht zusammen, kann der Host dem Status nicht trauen. Passt die Datenlänge nicht zum Verhalten, können Timeouts oder Stalls folgen.
Sense-Daten erklären viele Fehler
Ein fehlgeschlagenes SCSI-Kommando ist nicht das Ende der Diagnose. Sense-Daten geben oft den echten Grund:
- not ready
- medium error
- illegal request
- write protected
- logical block address out of range
- unit attention after reset
Firmware-Teams sollten das fehlgeschlagene Kommando und die folgende Sense-Antwort capturen. Ein Host-Mount-Fehler kann eine valide Reaktion auf einen von der Firmware gemeldeten Storage-Zustand sein.
Endpoint-STALL und Reset-Recovery
BOT hat definiertes Recovery-Verhalten. Stallt ein Endpoint oder scheitert ein Kommando schwer, gibt der Host möglicherweise Clear-Endpoint-Halt oder Mass-Storage-Reset aus. Ein Gerät, das nicht korrekt recoveret, kann verschwinden oder Unplugging erfordern.
Prüfen Sie:
- welcher Endpoint stalled
- ob der Host Clear-Feature gesendet hat
- ob BOT-Reset passiert ist
- ob der nachfolgende CBW/CSW-Flow resumed hat
- ob die Tags konsistent blieben
Diese Evidence ist besser, als Firmware-State-Machines zu erraten.
Wo Bus Scope passt
Bus Scope ist eine USB-Inspektions-Workbench. Für Mass-Storage-Fälle reichen Rohbytes allein nicht; dekodierte BOT-Struktur und Transfer-Status helfen Engineers, den Fehler schneller zu finden.
Ein nützlicher Bus-Scope-Report für BOT-Debugging beantwortet:
- welches SCSI-Kommando ist fehlgeschlagen?
- hat die Data-Phase zu CBW-Richtung und -Länge gepasst?
- ist CSW angekommen?
- hat das CSW-Tag zum CBW-Tag gepasst?
- welche Sense-Daten folgten?
- hat die Reset-Recovery funktioniert?
Für Suchanfragen wie "USB mass storage BOT failed", "CBW CSW mismatch" oder "USB flash drive I/O error firmware" ist das der Pfad vom User-Symptom zur Bus-Evidence.
<!-- bus-scope-localized-transaction-foundation-v1:start -->USB-Vertragsprüfung für „USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers“
Die direkte Antwort lautet: STALL, Timeout oder Reset erklärt die Ursache nicht allein. Beweisen Sie zuerst, dass der Capture-Provider das richtige Gerät sieht, und lesen Sie danach den Transfervertrag: Request-Typ, Richtung, Recipient, wValue, wIndex, angekündigte und tatsächliche Länge, Status sowie Zustand davor und danach. Verknüpfen Sie bei „USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers“ jede Aussage mit der ersten Transaktion, die von einem bekannten guten Lauf abweicht.
| Grenze | Zu vergleichen | Belastbares Urteil |
|---|---|---|
| Plattform | Provider, Rechte, Root Hub beziehungsweise usbmon/XHC20 | Kommen Records von der richtigen Verbindung? |
| Setup | bmRequestType, bRequest, wValue, wIndex, wLength | Sendet der Host die beabsichtigte Anfrage? |
| Data | Richtung, Länge und gespeicherte Bytes | Entspricht die Payload dem Vertrag? |
| Status | ACK, STALL, Timeout oder Cancellation | Wo endet die Transaktion tatsächlich? |
| Zustand | Configuration, Interface, Alternate Setting, Endpoint Halt | War das Gerät für die Anfrage bereit? |
Starten Sie vor Reset und Enumeration und behalten Sie Descriptoren, SET_CONFIGURATION, SET_INTERFACE und den Befehl vor dem Fehler. Ein enger Endpoint-Filter kann genau den Control Transfer verstecken, der das spätere Symptom erklärt. Führen Sie pro Versuch eine dokumentierte USB-Aktion aus und ändern Sie nur Firmware, Treiber, Port, Kabel, Hostbefehl oder Timing.
Wie sieht eine zitierfähige Antwort aus?
Nennen Sie angekommenen Request, konkrete Setup-Felder, Geräteantwort und vorherigen Zustand; danach folgt ein Test mit genau einer Änderung. Nicht gespeicherte Bytes durch Retention sind kein bewiesener Packet Loss. Zeitliche Nähe zwischen Command und Reset belegt Korrelation, nicht ohne Wiederholung oder Zustandsübergang die Ursache.
Wann ist ein Vergleich gültig?
Halten Sie VID/PID, Firmware, Speed, Topologie, Provider, Filter und Trigger möglichst gleich. Vergleichen Sie semantische USB-Phasen statt Frame-Nummern zwischen usbmon und USBPcap. Notieren Sie Start, Ende, Version, OS, Anschluss und Dateiprüfsumme. Nutzen Sie vor der Übergabe die Bus-Scope-Fehlersuche.
Semrush-Eigentümer bleiben getrennt: free USB analyzer gehört zur Produktseite, best USB protocol analyzer zur Vergleichsseite und USB descriptor viewer zum Descriptor-Guide. Diese Supportseite erhält keine erfundene Suchmenge oder KD.
<!-- bus-scope-localized-transaction-foundation-v1:end --><!-- multilingual-blog-closeout:start -->Direkte Antwort und Abnahmegrenze
Die kurze Antwort zu „USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers“ lautet: So debuggen Sie USB-Mass-Storage-Bulk-Only-Transport-Fehler mit Command Block Wrappern, Command Status Wrappern und Sense-Daten. Behandeln Sie diese Aussage als zu prüfendes Ergebnis und nicht als Versprechen für jede Eingabe, jedes Gerät, jedes Projekt oder jede Umgebung. Ein vollständiges Ergebnis dokumentiert Ausgangszustand, exakte Aktion, sichtbare Ausgabe und die Bedingung, die den Abschluss in Bus Scope belegt.
Evidenzorientiertes Vorgehen
Beginnen Sie mit einem kleinen, wiederholbaren Fall, bevor Sie ein vollständiges Projekt verändern. Protokollieren Sie Anwendungsversion, Betriebssystem, Eingabe- oder Geräteidentität, relevante Einstellungen und erwartetes Ergebnis. Führen Sie eine bewusste Aktion aus, bewahren Sie den ersten unerwarteten Übergang und vergleichen Sie möglichst mit einem bekannten guten Lauf. Mehrere gleichzeitige Änderungen verdecken, welche Bedingung den Fehler erzeugt oder behoben hat.
Prüfpunkt 1: USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers
Trennen Sie bei „USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers“ eine Produktentscheidung von Grenzen des Betriebssystems, der Hardware, Quelldatei, Berechtigung oder Arbeitsweise. Bestätigen Sie zuerst, welche Schicht die Evidenz geliefert hat. So wird ein benachbartes Symptom nicht fälschlich zur bewiesenen Ursache.
Prüfpunkt 2: So debuggen Sie USB-Mass-Storage-Bulk-Only-Transport-Fehler mit Command Block Wrappern, Co
Schließen Sie „So debuggen Sie USB-Mass-Storage-Bulk-Only-Transport-Fehler mit Command Block Wrappern, Command Status Wrappern und Sense-Daten.“ erst, wenn gespeichertes, exportiertes oder erneut geöffnetes Ergebnis weiterhin dem beobachteten Zustand entspricht. Vorübergehendes UI-Feedback hilft, dauerhafte Evidenz ist aber stärker. Dokumentieren Sie verbleibende Grenzen für die nächste Person.
Prüfpunkt 3: Den BOT-Flow verstehen
Trennen Sie bei „Den BOT-Flow verstehen“ eine Produktentscheidung von Grenzen des Betriebssystems, der Hardware, Quelldatei, Berechtigung oder Arbeitsweise. Bestätigen Sie zuerst, welche Schicht die Evidenz geliefert hat. So wird ein benachbartes Symptom nicht fälschlich zur bewiesenen Ursache.
Prüfpunkt 4: Sense-Daten erklären viele Fehler
Schließen Sie „Sense-Daten erklären viele Fehler“ erst, wenn gespeichertes, exportiertes oder erneut geöffnetes Ergebnis weiterhin dem beobachteten Zustand entspricht. Vorübergehendes UI-Feedback hilft, dauerhafte Evidenz ist aber stärker. Dokumentieren Sie verbleibende Grenzen für die nächste Person.
Prüfpunkt 5: Endpoint-STALL und Reset-Recovery
Trennen Sie bei „Endpoint-STALL und Reset-Recovery“ eine Produktentscheidung von Grenzen des Betriebssystems, der Hardware, Quelldatei, Berechtigung oder Arbeitsweise. Bestätigen Sie zuerst, welche Schicht die Evidenz geliefert hat. So wird ein benachbartes Symptom nicht fälschlich zur bewiesenen Ursache.
Prüfpunkt 6: Wo Bus Scope passt
Schließen Sie „Wo Bus Scope passt“ erst, wenn gespeichertes, exportiertes oder erneut geöffnetes Ergebnis weiterhin dem beobachteten Zustand entspricht. Vorübergehendes UI-Feedback hilft, dauerhafte Evidenz ist aber stärker. Dokumentieren Sie verbleibende Grenzen für die nächste Person.
Prüfpunkt 7: USB-Vertragsprüfung für „USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlges
Trennen Sie bei „USB-Vertragsprüfung für „USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers““ eine Produktentscheidung von Grenzen des Betriebssystems, der Hardware, Quelldatei, Berechtigung oder Arbeitsweise. Bestätigen Sie zuerst, welche Schicht die Evidenz geliefert hat. So wird ein benachbartes Symptom nicht fälschlich zur bewiesenen Ursache.
Prüfpunkt 8: Wie sieht eine zitierfähige Antwort aus?
Schließen Sie „Wie sieht eine zitierfähige Antwort aus?“ erst, wenn gespeichertes, exportiertes oder erneut geöffnetes Ergebnis weiterhin dem beobachteten Zustand entspricht. Vorübergehendes UI-Feedback hilft, dauerhafte Evidenz ist aber stärker. Dokumentieren Sie verbleibende Grenzen für die nächste Person.
Prüfpunkt 9: Wann ist ein Vergleich gültig?
Trennen Sie bei „Wann ist ein Vergleich gültig?“ eine Produktentscheidung von Grenzen des Betriebssystems, der Hardware, Quelldatei, Berechtigung oder Arbeitsweise. Bestätigen Sie zuerst, welche Schicht die Evidenz geliefert hat. So wird ein benachbartes Symptom nicht fälschlich zur bewiesenen Ursache.
Prüfpunkt 10: Host sendet CBW über Bulk-OUT
Schließen Sie „Host sendet CBW über Bulk-OUT“ erst, wenn gespeichertes, exportiertes oder erneut geöffnetes Ergebnis weiterhin dem beobachteten Zustand entspricht. Vorübergehendes UI-Feedback hilft, dauerhafte Evidenz ist aber stärker. Dokumentieren Sie verbleibende Grenzen für die nächste Person.
Abnahmematrix
| Prüfpunkt | Aufzubewahrender Nachweis | Passkriterium |
|---|---|---|
| USB-Mass-Storage-BOT-Debugging: CBW, CSW, Sense-Daten und fehlgeschlagene Transfers | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| So debuggen Sie USB-Mass-Storage-Bulk-Only-Transport-Fehler mit Command Block Wrappern, Command Status Wrappern und Sens | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Den BOT-Flow verstehen | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Sense-Daten erklären viele Fehler | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Endpoint-STALL und Reset-Recovery | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Wo Bus Scope passt | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
Fehlerisolierung, Recovery und Übergabe
Stoppen Sie beim ersten fehlerhaften Übergang. Bewahren Sie Quelle, Projekt, Session oder Capture und erstellen Sie vor destruktiven Änderungen eine Kopie. Ändern Sie pro Experiment nur eine Variable. Ein kompletter erneuter Lauf nach mehreren Änderungen kann anders enden, ohne die Ursache zu erklären.
Unterscheiden Sie fehlende Evidenz von Evidenz für ein Fehlen. Eine leere Ansicht kann auf falsche Eingabe, Scope, Filter, Berechtigung, Gerät, Zeitbereich oder Projektzustand hinweisen. Beweisen Sie Aufnahme oder Import, bevor Sie Decoder, Editor, Bericht oder Export interpretieren.
Öffnen Sie vor der Übergabe das dauerhafte Artefakt erneut und prüfen Sie Anfang, Entscheidungsstelle und Ende. Dokumentieren Sie Version, Plattform, Konfiguration, Erwartung, Beobachtung und kleinste Reproduktion. Entfernen oder schwärzen Sie sensible Daten und prüfen Sie die Berechtigung des Empfängers.
Fragen und Antworten
Wie beginnt man am schnellsten zuverlässig?
Verwenden Sie den kleinsten repräsentativen Fall, notieren Sie das erwartete Ergebnis und ändern Sie nur eine Variable. Beweisen Sie den Grundpfad, bevor Filter, Effekte, Bearbeitungen, Automatisierung oder größere Quellen hinzukommen.
Welche Evidenz sollte gespeichert werden?
Bewahren Sie Eingabeidentität, Version, Plattform, Einstellungen, exakte Aktion, ersten unerwarteten Übergang und Endausgabe. Projekt, Session, Bericht oder Export müssen geschlossen und erneut geöffnet werden.
Wann sollte das Verfahren wiederholt werden?
Wiederholen Sie es nach relevanten Änderungen an Anwendung, Betriebssystem, Treiber, Firmware, Modell, Quelle oder Workflow. Behalten Sie den früher akzeptierten Fall als unveränderte Vergleichsbasis.
Wann ist die Aufgabe übergabefähig?
Wenn eine autorisierte zweite Person Eingabe und Aktion erkennt, dasselbe Ergebnis reproduziert, verbleibende Grenzen versteht und das gespeicherte Artefakt ohne undokumentierten lokalen Zustand öffnen kann.
Verwandte Anleitungen
Diese gleichsprachigen Seiten decken angrenzende Schritte ab, ohne den kanonischen Eigentümer dieses Themas zu verändern:
<!-- multilingual-blog-closeout:end -->