Имитация USB-устройства для автоматизации

Я должен имитировать USB-устройство для автоматизации и тестирования (в Linux). Оригинальный драйвер / приложение для этого устройства использует "libusb" для связи с ним.

У меня нет большого опыта в Linux и симуляции, после некоторого поиска я понял, что мне нужно написать драйвер уровня ядра и приложение в пользовательском пространстве для имитации этого устройства. Это правда? Если да, то как это сделать?

спасибо заранее.

3 ответов


наконец, реализовал его, изменив "libusb", изменил его для отправки и получения USB-передач из очереди сообщений вместо usbfs. Запрограммировал мой симулятор для создания передач типа libsub и отправки/получения их с помощью очередей сообщений.

Simulator теперь интерпретирует входящие передачи и отправляет их в парсер команд, который отправляет запрос / сообщение в систему автоматизации с помощью сокетов в определенном формате. Система автоматизации отправляет инструкцию путем отправки в команду парсер с использованием сокета. Этот сокет вызывает метод, специфичный для каждого запроса в симуляторе, теперь симулятор формирует соответствующую структуру передачи и переходит к плагину устройства (через libusb) через очередь сообщений.


Я думаю, что то, что вы ищете, будет называться виртуальным USB-устройством. В настоящее время в стандартном ядре ничего нет.Некоторые виртуальные машины обеспечивают эмуляцию USB.например, KVM обеспечивает эмуляцию USB. Есть рамки гаджет в котором может искать ваше решение. Или найти что-нибудь в Linux USB project

спасибо, Абхиджит


на usb-vhci проект может быть полезен, если вы хотите, чтобы устройство было представлено ядру так же, как и реальное оборудование.