커널에 netlink 프로토콜 통신을 디버깅할 수 있는 방법이 있습니까?

커널에 netlink 프로토콜 통신을 디버깅할 수 있는 방법이 있습니까?

Netlink(예: 커널 내부 프로토콜)는 추가 도구 없이 디버깅하기 어려운 것 같습니다. 매우 제한된 임베디드 시스템을 사용하고 있기 때문에 실제로 사용할 수 없습니다.

소스에서 다시 컴파일하는 경우 netlink에 대한 커널 디버깅 옵션이 있습니까? 예를 들어, 메시지가 수신되고 이해되었음을 확인하는 로그

디버깅 상세 수준을 15로 설정했지만 특히 netlink와 관련된 옵션을 찾을 수 없습니다.

답변1

나는 netlink 가시성을 얻기 위해 커널에 내 자신의 인쇄 로깅을 추가했습니다. 이에 대해 구성할 수 있는 공식적인 솔루션은 없습니다.

rtnetlink_rcv_msgin은 linux/net/core/rtnetlink.c좋은 시작점이므로 printk추가 작업 없이 호출을 추가할 수 있습니다. 예를 들면 다음과 같습니다.

printk(KERN_INFO "netlink msg recv msgtype %d\n", type);

관련 정보