2012-06-03 3 views
6

(Linux의 경우) 자동화 및 테스트 목적으로 USB 장치를 시뮬레이트해야합니다. 이 장치의 원래 드라이버/응용 프로그램은 "libusb"를 사용하여 통신합니다.자동화 용 USB 장치 시뮬레이션

Linux 및 시뮬레이션에 대한 경험이별로 없지만 일부 검색을 한 후 커널 수준 드라이버와 해당 장치를 시뮬레이션하기위한 사용자 공간의 응용 프로그램을 작성해야한다는 것을 알고 있습니다. 이게 옳은 거니? 예, 그렇다면 어떻게 할 수 있습니까?

미리 감사드립니다.

+0

또 다른 옵션은 USB 지원 (예 : VirtualBox 또는 Qemu)과 함께 가상화 소프트웨어를 사용하고 게스트 시스템 용 USB 장치를 에뮬레이트하는 플러그인을 작성하는 것입니다. (더 쉬울 수도 있음) – pmdj

답변

2

마지막으로, "libusb를"을 수정하여 구현 보내고 메시지 큐 대신 USBFS에서 USB 전송을받을 수를 수정했습니다. libsub 유형 전송을 생성하고 메시지 대기열을 사용하여 전송/수신하도록 시뮬레이터를 프로그래밍했습니다.

시뮬레이터는 들어오는 전송을 해석하여이를 특정 형식의 소켓을 사용하여 요청/메시지를 자동화 시스템에 보내는 명령 파서로 전송합니다. 자동화 시스템은 소켓을 사용하여 명령 구문 분석기로 전송하여 명령을 전송합니다. 이 소켓은 시뮬레이터의 각 요청에 특정한 메소드를 호출합니다. 이제 시뮬레이터는 적절한 전송 구조를 형성하고 메시지 대기열을 통해 (libusb를 통해) 디바이스 플러그인으로 전달됩니다.

+4

코드를 공유하면이 코드가 유용 할 것입니다. –

0

당신이 찾고있는 것이 가상 USB 장치라고 생각합니다. 현재 표준 커널에는 아무 것도 없습니다. 일부 가상 머신은 USB 에뮬레이션을 제공합니다. KVM은 USB 에뮬레이션을 제공합니다. 귀하의 솔루션을 찾을 수있는 프레임 워크 gadget이 있습니다. 또는 Linux USB project

감사에서 뭔가를 찾아, Abhijeet는

+0

제안 해 주셔서 감사합니다.이 질문을 게시하기 전에 가젯 API를 보았습니다. 그것을 구현하는 데 어려움을 겪고있었습니다. –

+0

@ gaurav-agrawal,이 질문에 대한 링크 또는 샘플 소스 코드를 알려주십시오. –

0

usb-vhci 프로젝트는 실제 하드웨어와 동일한 방식으로 장치를 커널에 제공하려는 경우 유용 할 수 있습니다.