Я переписываю программное обеспечение для устройства чтения HID, чтобы оно поддерживало Linux, и у меня возникли некоторые проблемы при его отладке. В Windows я использую инструмент под названием Busdog, который позволяет вам выбрать устройство и регистрировать отчеты о записи / чтении. Он управляет этим путем установки специального драйвера для отслеживания трафика.
Используемая мной библиотека на базе Linux напрямую связывается с устройством с помощью lsusb, поэтому драйвер не взаимодействует. Кто-нибудь знает, как я могу отслеживать трафик между моим приложением и USB-устройством?
Примечание: я попытался сбросить данные из своего приложения перед записью на устройство, и все выглядит хорошо. Однако, если я запускаю свое скомпилированное приложение в Windows, busdog показывает неправильные данные, записываемые на устройство. Это указывает на проблему с библиотекой, которую я использую (hidapi.h). Я хотел бы подтвердить это, если смогу, в Linux.
Оказывается, Wireshark может захватывать трафик USB, а также сетевой трафик. Он не представляет данные так же хорошо, как busdog (там есть много дополнительных вещей, не только данные HID), но он выполняет свою работу.
Других решений пока нет …