2012-06-03 13 views
6

के लिए एक यूएसबी डिवाइस अनुकरण करें मुझे स्वचालन और परीक्षण उद्देश्यों (लिनक्स में) के लिए एक यूएसबी डिवाइस अनुकरण करना है। इस डिवाइस के लिए मूल ड्राइवर/एप्लिकेशन इसके साथ संवाद करने के लिए "libusb" का उपयोग करता है।स्वचालन

मुझे लिनक्स और सिमुलेशन में बहुत अधिक अनुभव नहीं है, कुछ खोज के बाद मुझे समझ में आया है कि मुझे उस डिवाइस को अनुकरण करने के लिए कर्नेल लेवल ड्राइवर और उपयोगकर्ता-स्पेस में एक एप्लिकेशन लिखना होगा। क्या यह सही है? यदि हां, यह कैसे किया जा सकता है?

अग्रिम में धन्यवाद।

+0

यूएसबी समर्थन (जैसे वर्चुअलबॉक्स या क्यूमु) के साथ वर्चुअलाइजेशन सॉफ़्टवेयर का उपयोग करने का एक और विकल्प हो सकता है और उस के लिए एक प्लगइन लिखना जो अतिथि प्रणाली के लिए यूएसबी डिवाइस को अनुकरण करता है। (यह आसान हो सकता है) – pmdj

उत्तर

2

अंत में, "libusb" संशोधित करके इसे लागू भेजने के लिए और संदेश के बजाय कतार usbfs से usb ट्रांसफ़र प्राप्त करने के लिए यह संशोधित। Libsub प्रकार हस्तांतरण बनाने और संदेश कतारों का उपयोग करके उन्हें प्राप्त/प्राप्त करने के लिए मेरे सिम्युलेटर प्रोग्राम किया।

सिम्युलेटर अब आने वाले स्थानान्तरण को समझता है और इसे एक कमांड पार्सर में भेजता है, जो एक विशिष्ट प्रारूप में सॉकेट का उपयोग करके स्वचालन प्रणाली को अनुरोध/संदेश भेजता है। ऑटोमेशन सिस्टम सॉकेट का उपयोग कर कमांड पार्सर को भेजकर इसका निर्देश भेजता है। यह सॉकेट सिम्युलेटर में प्रत्येक अनुरोध के लिए विशिष्ट विधि का आह्वान करता है, अब सिम्युलेटर एक उचित हस्तांतरण संरचना बनाता है और संदेश कतार के माध्यम से डिवाइस प्लगइन (libusb के माध्यम से) में गुजरता है।

+4

अगर आप इसके लिए कोड साझा करते हैं तो मुझे यह अच्छा लगेगा, मुझे लगता है कि मुझे यह उपयोगी लगेगा। –

0

मुझे लगता है कि आप जो खोज रहे हैं उसे वर्चुअल यूएसबी डिवाइस कहा जाएगा। वर्तमान में मानक कर्नेल में कुछ भी नहीं है। कुछ वर्चुअल मशीन यूएसबी emulation.e.g प्रदान करता है। केवीएम यूएसबी इम्यूलेशन प्रदान करता है। फ्रेमवर्क gadget है जिसमें आपके समाधान की तलाश हो सकती है। या में Linux USB project

धन्यवाद कुछ मिल जाए, अभिजीत

+0

आपके सुझाव के लिए धन्यवाद, इस प्रश्न को पोस्ट करने से पहले गैजेट एपीआई देखें। इसे लागू करने में कठिनाई हो रही थी। –

+0

@ गौरव-अग्रवाल, क्या आप इस प्रश्न के लिए कुछ लिंक या नमूना स्रोत कोड साझा कर सकते हैं? –

0

usb-vhci प्रोजेक्ट का उपयोग किया जा सकता है यदि आप डिवाइस को कर्नेल को वास्तविक हार्डवेयर के रूप में प्रस्तुत करना चाहते हैं।

संबंधित मुद्दे