カーネルに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);

関連情報