2012-06-03 6 views
6

Je dois simuler un périphérique USB à des fins d'automatisation et d'essai (sous Linux). Le pilote/l'application d'origine de cet appareil utilise "libusb" pour communiquer avec lui. Je n'ai pas beaucoup d'expérience en Linux et en Simulation, après quelques recherches, j'ai compris que j'avais besoin d'écrire un pilote au niveau du noyau et une application dans l'espace utilisateur pour simuler ce périphérique. Est-ce correct? Si oui, comment cela peut-il être fait?Simuler un périphérique USB pour l'automatisation

Merci à l'avance.

+0

Une autre option pourrait être d'utiliser un logiciel de virtualisation avec prise en charge USB (comme VirtualBox ou Qemu) et écrire un plug-in pour ce qui émule le périphérique USB pour le système invité. (Cela pourrait être plus facile) – pmdj

Répondre

2

Enfin mis en œuvre en modifiant « libusb », il a modifié pour envoyer et recevoir des transferts USB de file d'attente de messages au lieu de usbfs. Programmé mon simulateur pour créer des transferts de type libsub et les envoyer/recevoir en utilisant des files d'attente de messages.

Simulator interprète maintenant les transferts entrants et l'envoie à un analyseur de commande, qui envoie la demande/message système d'automatisation à l'aide des prises dans un format spécifique. Système d'automatisation envoie son instruction en envoyant à l'analyseur de commande en utilisant le socket. Cette socket appelle une méthode spécifique à chaque requête dans le simulateur. Maintenant, le simulateur forme une structure de transfert appropriée et passe au plugin de périphérique (via libusb) via la file d'attente des messages.

+4

Aimerais si vous avez partagé le code pour cela, je pense que je vais trouver cela utile. –

0

Je pense que ce que vous cherchez serait appelé un périphérique USB virtuel. Actuellement, il n'y a rien dans le noyau standard. Certaines machines virtuelles fournissent une émulation USB.e.g. KVM fournit une émulation USB. Il y a le cadre gadget dans lequel pourrait chercher votre solution. Ou trouver quelque chose dans Linux USB project

Merci, Abhijeet

+0

Merci pour votre suggestion, regardé api gadget avant de poster cette question. Avait de la difficulté à l'appliquer. –

+0

@ gaurav-agrawal, Pourriez-vous partager un lien ou un exemple de code source pour cette question? –

0

Le projet usb-vhci pourrait être utile si vous voulez que l'appareil soit présenté au noyau de la même manière que le matériel réel.

Questions connexes