web-dev-qa-db-fra.com

Comment émuler des périphériques USB?

Le reste de mon équipe créera pour mon application un simple microphone USB non standard, mais jusqu'à ce qu'il l'ait terminé, je devrai l'émuler, à des fins de test d'intégration.

  1. Y a-t-il un risque de bouclage physique? Oui, il y a
  2. Un bouclage physique fonctionnera-t-il? Uniquement avec USB bridge
  3. Il existe un moyen de créer un bouclage logique? ( MSDN a quelque chose à ce sujet )
  4. Existe-t-il un logiciel d'émulation USB à usage général?

Dans le cas où il existe de nombreuses options, je préfère travailler avec des solutions .NET/Matlab/Python.

35
Jader Dias

Edit: Proof of concept ici

Je recommande fortement ce projet, USB IP . C'est un moyen de connecter des périphériques USB sur le réseau. Il existe un client Windows.

Cela signifie que vous installez le client sur votre ordinateur Windows. Cet appareil s'attend alors à parler à un appareil USB connecté à un ordinateur Linux, le serveur: diagram over how a USB IP client connects to a USB IP server

Ce que vous faites maintenant, c'est soit créer un faux pilote de périphérique pour Linux, qui ressemble à est connecté à un périphérique USB physique, mais en réalité c'est juste de la logique faire semblant d'être votre périphérique USB. Il y a tutoriels pour écrire des pilotes USB pour Linux . Ou vous créez votre propre pilote de stub pour le Device Control Manager (voir l'image ci-dessus). Ce pilote stub pourrait fonctionner sous Windows ou Linux, cela n'aurait pas d'importance. Il pourrait même fonctionner sur la machine même Windows qui est le client USB.

Le DSF USB Loopback Device mentionné dans la question elle-même, serait le même type de solution qu'un pilote de stub pour le Device Control Manager, mais en supprimant complètement Linux de l'image.

19
Prof. Falken

Vous pouvez écrire un périphérique USB virtuel à l'aide de QEMU. Vous pouvez dupliquer un périphérique déjà existant, comme le dev-serial.c trouvé dans this QEMU repository et le modifier selon vos besoins.
Après avoir écrit et compilé votre périphérique USB, vous pouvez simplement le connecter à votre VM en utilisant l'interface de ligne de commande QEMU.

1
Yaron Shani