2011-09-21 5 views
3

Linux 태블릿에서 실행되는 응용 프로그램과 통신하기 위해 Nexus One 휴대 전화를 설정하려고합니다.Android USB 액세서리 통신 Linux 시스템과 함께

Nexus One은 Android 2.3.4이므로 휴대 전화쪽에는 USB 액세서리 라이브러리가 있습니다. 그리고 http://developer.android.com/guide/topics/usb/accessory.html의 지침에 따라 Android 애플리케이션을 만들었습니다. Android 애플리케이션이 Microchip 액세서리 개발 시작 키트에 연결하고 연결하여 Android 애플리케이션이 작동하는지 확인했습니다.

리눅스 측면에서 Nexus 장치를 usbserial 모듈에 등록하고 전화가 연결되면 ttyUSB0 장치를 만들도록 구성했습니다. 응용 프로그램이 ttyUSB0에 올바르게 읽고 쓰는지 확인했습니다. 나는 이것을 다른 컴퓨터의 시리얼 포트에 연결하고 데이터를보고 minicom을 통해이를 수행했다.

안타깝게도 Android 개발자 웹 사이트는 호스트 장치 (내 경우에는 Linux 타블렛)가 수행해야하는 구성을 다루지 않습니다. 다른 말로하면, 리눅스는 전화와 통신하기 위해 어떤 프로토콜을 따라야 하는가?

+0

Linux 태블릿의 경우 Linux가 Nexus One을 전혀 인식하지 않습니까? 'lsusb' 결과물에 나타 납니까? 만약 그렇다면, 리눅스에서 볼 수있는 USB 디스크립터는 무엇입니까 ('/ sys/bus/usb/devices/... '아래를보십시오)? –

+0

@AdrianCox 예, Linux가 장치를 인식하고이를 usbserial 모듈에 등록하여 ttyUSB 노드를 만들 수 있습니다. 나는 또한 그것에 성공적으로 읽고 쓸 수있다. 문제는 Linux 응용 프로그램이 전화로 tx/rx 데이터를 따르는 프로토콜이라는 것을 알았습니다. 불행히도이 시점에서 나는 그게 무엇인지 알아내는 방법을 모르겠습니다. PIC에서 작동하는 Microchip 응용 프로그램을 탐색하려고하지만 사용중인 프로토콜을 따르더라도 작동하지 않는 것 같습니다. 내가 뭔가를 놓치고있다, 그냥 잘 모르겠어 ... – linsek

+0

나는 USB 드라이버를 개발했지만 안드로이드에 익숙하지 않다. Linux 호스트가 응용 프로그램 코드가 아닌 Nexus One (테 더링)의 모뎀 부분과 대화하고 있습니까? Linux에서 ttyUSB 노드에 터미널을 열고 ati와 같은 모뎀 명령을 입력하여이를 확인할 수 있습니다. –

답변

2

이것은 불가능합니다. 추가 연구가 끝나면 직렬 USB 통신을 사용하여 Android 기기와 통신 할 수 없습니다. Linux를 통해 Android 응용 프로그램과 통신하려면 libusb-1.x 라이브러리를 사용하십시오.