모듈은 이미 만든 상태입니다.
이게 핸드폰이라는 특성상 EVK와 다르게 권한도 없고 rootfs도 맘대로 못바꾸니 여러모로 힘든 상태입니다.
1. 우선은 권한이 없어서 insmod를 못하고,
2. 루트 권한을 위해 루팅을 했더니 '커널 버전'이 바껴서 insmod해도 invalid module format 에러가 납니다.
3. 심볼테이블은 바뀌지 않았겠지 하고 억지로 커널 버전을 맞췄더니, 심볼이 다르다고 insmod 실패합니다.
이래저래 안되서 알아보고있는데, AESOP의 어떤분이 Android USB Host API를 알아보라고 해서 찾아보고 있습니다.
android.hardware.usb 패키지에 있다는거 보니 JAVA로 작업하는 것 같네요.
모듈 컴파일을 하시면 되죠.
우선 리눅스에서 디바이스 드라이버(.KO)를 만드신 경험이 있으시면 그것과 99% 이상 같고,
main 함수가 없는 모듈을 컴파일하고 insmod로 테스트 하세요.
James Gostling
모듈은 이미 만든 상태입니다. 이게 핸드폰이라는
모듈은 이미 만든 상태입니다.
이게 핸드폰이라는 특성상 EVK와 다르게 권한도 없고 rootfs도 맘대로 못바꾸니 여러모로 힘든 상태입니다.
1. 우선은 권한이 없어서 insmod를 못하고,
2. 루트 권한을 위해 루팅을 했더니 '커널 버전'이 바껴서 insmod해도 invalid module format 에러가 납니다.
3. 심볼테이블은 바뀌지 않았겠지 하고 억지로 커널 버전을 맞췄더니, 심볼이 다르다고 insmod 실패합니다.
이래저래 안되서 알아보고있는데, AESOP의 어떤분이 Android USB Host API를 알아보라고 해서 찾아보고 있습니다.
android.hardware.usb 패키지에 있다는거 보니 JAVA로 작업하는 것 같네요.
1000
커널환경 설정을 확인바랍니다.
insmod에 수퍼권한이 필요한건 당연합니다.
컴파일 로그도 확인해 보시고 .config 내용이 현커널과 정확히 일치하도록 제대로 세팅후 재컴파일해야 합니다.
물론 API에 웬만한건 있지만
존재하지 않던 새로운 장치에 대한 드라이버를 만들려면 새 모듈등록은 필수 입니다.
James Gostling
댓글 달기