도와주세요!!
글 수 15,339
2014.04.07 01:41:23 (*.189.127.193)
13081
안녕하세요,
연구중에 궁금한 점이 생겨서 글을 남기게 되었습니다.
GPU 혹은 Audio Device Driver 등 SoC의 하드웨어 모듈에 대해
현재 사용중인지 여부를 알고 싶습니다.
lsmod 혹은 /proc/modules 에는 자세히 나오지 않네요.
/proc/devices 혹은 /proc/misc 내에는 Mali, s3c-mfc 등이 보이는데,
정작 이 하드웨어들의 사용 여부는 어떻게 알아야 할까요?
해외 포럼을 중심으로 찾고 있는데 뚜렷한 답이 나오지 않네요.
일부 사람들에 의하면 Kernel Build시에 * (Built-in)으로 작업을 해놓은 하드웨어는
lsmod 등으로도 보이지 않게 된다는데 맞는 말인가요?
정리하자면,
실제로 Hardware Module의 사용 여부를 알려면 어떻게 해야하나요?
고수님들 답변 부탁드립니다..
현재 사용중인지 여부라는 것은... 커널에 기능이 들어가 있는지를 궁금해 하시는건지
아니면 어플리케이션에서 사용중인지의 여부를 궁금해 하시는건지 잘 모르겠습니다.
lsmod 는 로딩된 모듈리스트를 보는 유틸입니다 당연히 안보이죠
빌트인 되어 잇고 활성화가 되었다면 해당 디바이스가 사용하는 메모가 매핑되었을 겁니다.
매핑 테이블을 간단히 확인 ( /proc/iomem )할수도 있구요.
장치가 사용중인지 여부는 조금 애매하네요
어떤 드라이버는 접근하려 할때 이미 사용중이라고 말해주기도 하고
어떤 드라이버는 다른 사용자와 별개로 접근할수 있도록 제공해주기도 하니까요
어쨋든 커널에서 soc 의 ip 를 사용하기 위해서는 해당 ip 의 레지스터 테이블이 매핑이 되어야 합니다.
매핑과정이 생기게 되면 /proc 를 통해서 알아낼수 있게 됩니다.
실제 장치 드라이버가 올라간 것 역시 구분이 가능합니다.
하지만 물리주소를 베이스로 구분이 가능하고 가상 주소는 알수 없습니다.