Как эмулировать USB-устройства? - PullRequest
34 голосов
/ 16 декабря 2009

Остальная часть моей команды сделает для моего приложения простой нестандартный микрофон USB, но пока они не закончат его, мне придется имитировать его для целей интеграционного тестирования.

  1. Есть ли риск в физическом шлейфе? Да, есть
  2. Будет ли работать физический шлейф? Только с USB мостом
  3. Есть ли способ создать логическую петлю? ( MSDN имеет что-то об этом )
  4. Существует ли какое-либо универсальное программное обеспечение USB-эмулятора?

В случае если доступно много опций, я бы предпочел работать с решениями .NET / Matlab / Python.

Ответы [ 2 ]

19 голосов
/ 16 декабря 2009

Редактировать: подтверждение концепции здесь

Я настоятельно рекомендую этот проект, USB IP . Это способ подключения USB-устройств по сети. Есть клиент Windows.

Это означает, что вы устанавливаете клиент на свой компьютер с Windows. Затем это устройство ожидает соединения с USB-устройством, подключенным к компьютеру с Linux, с сервером: diagram over how a USB IP client connects to a USB IP server

То, что вы сейчас делаете, это либо создание поддельного драйвера устройства для Linux, который выглядит как подключенный к физическому USB-устройству, но на самом деле это просто логика, притворяющаяся вашим USB-устройством. Есть учебники по написанию драйверов USB для Linux . Или вы создаете свой собственный драйвер заглушки для диспетчера управления устройствами (см. Рисунок выше). Этот драйвер заглушки может работать в Windows или Linux, это не имеет значения. Он может работать даже на той же машине Windows, которая является клиентом USB.

USB-устройство с обратной связью DSF , упомянутое в самом вопросе, будет тем же самым решением, что и драйвер-заглушка для диспетчера управления устройствами, но исключит Linux из общей картины.

1 голос
/ 23 августа 2014

Вы можете записать виртуальное USB-устройство, используя QEMU. Вы можете скопировать уже существующее устройство, например dev-serial.c, найденный в этом репозитории QEMU, и изменить его для своих нужд.
После того, как вы напишите и скомпилируете свое USB-устройство, вы можете просто подключить его к вашей виртуальной машине, используя интерфейс командной строки QEMU.

...