Привет, ЛОР. Редко спрашиваю на форумах, но тут проблемка меня совсем заступорила. Итак, есть некоторое устройство. Для него есть драйвера на винду, но нет под линукс. Я пытаюсь активировать его из-под линукса с помощью libusb. У меня есть запись общения с этим устройством из-под винды, собранная Wireshark’ом. В первом фрейме происходит запись байтов по эндпоинту 0x05, а во втором приходит пустой ответ. Эту часть получилось воспроизвести через libusb_bulk_transfer
. Однако дальше происходит странное. В третьем фрейме мне прилетают 32 байта из эндпоинта 0x83. Странное тут то, что непонятно, как была вызвана их пересылка. Если в первых двух фреймах есть информация по Request in/Response in, то тут она отсутствует. Если я попытаюсь прочитать данные из эндпоинта 0x83 с помощью libusb_bulk_transfer
, то получаю таймаут. Мои попытки чтения данных из этого эндпоинта в Wireshark’е выглядят как запрос от host к устройству и ответ с ошибкой URB status: No such file or directory (-ENOENT) (-2)
в следующем фрейме. Собственно, вопросы. Как может прилететь ответ от устройства без запроса? Как его можно поймать через libusb?
Алсо, вывод lsusb для этого устройства.