안드로이드 공부를하고 있는데요~
adb shell을 통해서 보이는 dev/* 밑의 무수히 많은 디바이스 노드들에 대해서 궁금해서 찾아보고 있습니다.
어떤 디바이스들이 있는지 보다가 이제 실제 이 디바이스들에 연계되는 소스코드를 분석해보려고 합니다.
opensource.samsung.com에서 구한 삼성폰의 소스코드를 바탕으로 일단 보고 있는데,
drivers/* 밑에 수많은 파일들 중 실제 어떤파일들이 어떤 디바이스 노드에 관련된 소스코드인지 알고 싶습니다.
해당 연관관계를 알 수 있는 방법이 있을까요?
노드명과 해당 소스코드 폴더명이 유사하여 찾을 수 있는 경우도 있지만, 그렇게 찾는데는 한계가 있어서 이곳에 여쭈어봅니다.
1. 연관관계를 분석할 수 있는 방법을 알려주세요.
-> mali나 ump관련된 소스코드가 어떤 것인지도 알고 싶습니다.
댓글 3
-
오시리스
2013.08.31 18:41
-
피터
2013.09.02 06:00
말씀하신대로 Kconfig 내용도 참고해봐야겠습니다.
개발자 사이트를 참고해보는 것도 좋은 방법이겠네요~
감사합니다!! :)
-
주피터
2013.10.14 11:09
ㅎㅎㅎ 처음에 찾기가 힘드 실 때는 grep 을 많이 애용하세요. /dev/name 이라면, kernel 폴더 밑에서 grep -r name ./ 치시면, 빨리 접근하실듯 합니다.
파일시스템 쪽 어디에서 쓰였는지 찾아 보시려면, android 전체 폴더 밑에서 grep -r /dev/name ./ 라고 치면 되겠죠~
.
제 경험도 적지만, 일단 그 (쉬운) 방법 이란게 없지 않나요. /dev/*의 node 들도 부팅 되면서, udev를 통해서 만들어지는 녀석들이라서, 소스랑 매칭시킬 수 있는 부분이, 장치 node 이름 밖에는 안될 것 같고요.
(그리고 이 node란 것도 /sys/dev/에서 udevd가 추려서 올리는 것들이라...)
대게 kernel config 옵션에 따라, drivers 컴파일이 되므로, config에서 활성화 되는 옵션들에 따라 Kconfig도 참고하시면서 해당 장치 이름과 config 옵션으로 범위를 줄여나가시면 될 것 같습니다.
그리고, mali나 ump쪽 찾아보니 module 소스가 개발자 사이트에 제공되고 있고, 아래 링크로 해당 소스가 i9070으로 올려져 있던데, 확인해 보시는 것도 좋을 듯 하네요
https://github.com/diego-ch/android_kernel_samsung_janice/tree/master/kernel/drivers/gpu/mali/mali400ko/driver/src/devicedrv/ump