USB-диагностика: полное руководство по отладке USB-устройств через пакетные захваты
Полный рабочий процесс USB-диагностики для инженеров прошивок. Аппаратный и программный захват, usbmon в Linux, USBPcap в Windows, отладка перечисления, ошибки дескрипторов, сбои передач и сравнение сеансов. Каждая USB-проблема привязана к странице диагностики.
Это хаб-страница по USB-диагностике. Неважно, отлаживаете ли вы перечисление прошивки, привязку драйвера, сбои передач или протокольные вопросы — это руководство привязывает каждый сценарий USB-отладки к правильному подходу и инструментам.
Захват: аппаратный анализатор vs программный захват
До отладки любой USB-проблемы решите, как захватывать трафик:
- USBPcap vs usbmon: захват в Windows и Linux — Настройка захвата под платформу. Выбор корневого концентратора USBPcap, права usbmon и когда что использовать.
- Настройка захвата по платформам — Подробная конфигурация Linux usbmon и Windows USBPcap.
- Подключение к устройству — Первый захват — воркфлоу.
Перечисление и отладка дескрипторов
USB-перечисление — там прячутся большинство багов прошивок. Устройство должно корректно отвечать на последовательность запросов дескрипторов, прежде чем начнётся общение на уровне приложения.
- Отладка управляющей передачи USB и setup-пакета — Чтение bmRequestType, bRequest, wValue, wIndex. Понимание того, что запрашивает хост.
- Отладка составного устройства USB и IAD — Проблемы Interface Association Descriptor, неправильная привязка драйвера, Code 10, Code 43, Windows usbccgp.sys.
- Отладка STALL конечной точки USB — Когда устройство возвращает STALL. Что это значит, как диагностировать и как должна восстанавливаться прошивка.
Сбои передач и отладка протокола
- Отладка UASP vs BOT mass storage — Сбои протокола UASP, откат на BOT, тайм-ауты SCSI-команд, циклы сброса, медленные внешние диски.
Отладка под конкретные платформы
- Справочник фильтров Wireshark для USB — Display-фильтры Wireshark для USB-захватов. Фильтрация по устройству, конечной точке, типу передачи и полю дескриптора.
Сравнения
- Bus Scope против HHD USB Monitor и Total Phase Beagle — Программный USB-анализатор против аппаратного — когда что уместно.
Управление сеансами
- Сохранение и сравнение USB-сеансов — Захват рабочего и сбойного поведения устройства и сравнение.
- Устранение неполадок захвата — Адаптер недоступен, пустая временная шкала, недостающие данные.
Как начать
- Подключение и захват — Первая настройка захвата.
- Настройка платформы — Linux usbmon или Windows USBPcap.
- Устранение неполадок — Типичные проблемы захвата.