body start
ECM Merged USB Composite Driver

Project Info
- This project has not yet categorized Software Map
- Member count : 1
- Registered: : 2010.03.16
- Activity Percentile: : 40%
Developer Info
- 목표
오드로이드의 ADB + MSD Composite 드라이버에 ECM 기능을 추가
- 배경
ECM 드라이버의 경우 오드로이드에서 동작한다는 이제현님의 글을 보고,
리눅스용 USB 드라이버 개발에 도전하고자 시작하게 되었습니다..
(리눅스에 대해서 잘 모르니 다른 분들의 도움이 많이 필요합니다. ^^)
- 개요
ECM 단독 기능으로 동작을 하고 있는 상황이므로,
기존의 Composite 드라이버의 USB Descriptor와 Endpoint 설정들을 조금 변경해주면 동작 가능(?)
- 관련 소스
linux\drivers\usb\gadget\android.c
: odroid의 기본 composite 드라이버의 메인 소스로 보입니다...
linux\drivers\usb\gadget\f_adb.h / f_adb.c : adb_function_add()
linux\drivers\usb\gadget\f_ecm.c : ecm_bind_config()에서 usb_add_function() 함수 호출..
android_bind_config() 함수에서..
mass_storage_function_add() 및 adb_function_add() 함수를 호출합니다..
(기본적으로는 여기에 ecm 관련 함수를 추가해주면 될듯합니다..
linux\drivers\usb\gadget\f_mass_storage.h / f_mass_storage.c
: mass_storage_function_add()
물론 USB 설정 부분 손을 봐야하는지 찾아보고 있는 중입니다..)
linux\drivers\usb\gadget\f_adb.h / f_adb.c : adb_function_add()
linux\drivers\usb\gadget\f_ecm.c : ecm_bind_config()에서 usb_add_function() 함수 호출..
(ADB와 MSD gadget의 xxx_function_add()함수에서 마지막에 usb_add_function()를 호출


