어떤 디바이스 드라이버의 소스를 찾는 법은
무식하게 kernel root 부터 다 찾는다! NO
(1) 동작하는 시스템이 있다면 kmsg에서 동작하는 디바이스의 boot 과정에서 나오는 메시지를 찾는다.
목적은 DTS 파일등에 나오는 문자열을 찾기 위해서이다
예) "broadcom, systemmmu"
(2) 이렇게 해서 원하는 디바이스 드라이버의 문자열을 찾으면 다시 DTS 폴더에서 해당 device driver의 문자열을 찾는다.
이때 ARM은 32bit용 64bit용의 호환성문제로 안써도 2곳에 다 넣은 경우가 있으니 주의
(3) 이제 찾은 문자열로 헤더파일을 찾는다. (소스에서 사용하는 곳이 n개 있을수 있다면 헤더에서는 보통 1개만 선언하기 때문에 검색시간 단축에 용이하다)
$grep -nr "systemmmu" -include=*.h
(3-2) 또는 드라이버 폴더에서 찾는다
$grep -nr "systemmmu" drivers/* 와 같이 검색위치를 좁혀서
(3-3) or 조합
$grep -nr "systemmmu" --include=*.h drivers/*
[퍼옴] 만화로 나누는 자유/오픈소스 소프트웨어 이야기 (0) | 2023.01.26 |
---|---|
[팁] 루트 파일시스템 종류 찾기 (mount, tree) (0) | 2022.01.18 |
Makefile의 MRPROPER의 의미 (0) | 2022.01.12 |
Linux Version check (개발자 버전) (0) | 2022.01.04 |