Tech/linux
Linux kernel dynamic debug
kwangson
2024. 6. 25. 23:59
리눅스 커널 드라이버를 개발하다보면 dev_dbg가 안나오는 경우가 있다.
이런경우 몇 가지 방법을 시도해야한다.
1. Dynamic debug
요즘 많이 사용되는 방식으로 기존 전통적인 방식 대비 깔끔하지만 여러가지 설정이 필요하다.
config에서 dynamic_debug를 켜주고 빌드하여야 한다.
이후 debugfs 를 mount 한 후,
<debugfs>/dynamic_debug/control 에 원하는 파일을 추가로 기술해주어야 한다. (이미 써져있는 경우도 있음)
2. Traditional debug
dev_dbg의 경우 dynamic_debug가 기본적으로 off이다. (on 일 경우 전통적인 방식은 안먹힘.)
보통 2가지를 해주면 되는데, 본인이 원하는 드라이버에 (.c or .h)
#define DEBUG 매크로 정의
그리고 각 서브시스템마다 debug config가 따로 존재하는 경우 이것도 켜주어야 한다.
추가로 1,2 번 방식 둘다 kernel console debug level이 충분히 높은지 확인 (/sys/kernel.../printk) 은 공통적으로 필요하다.