memo.log

技術情報の雑なメモ

Raspberry Pi 4でネットワークドライバにデバッグ用の一行だけ追加するメモ

Raspberry Pi 4の有線LANのインターフェースのドライバに一行加えてパケットを送信するためにログ出力するように改造してみたメモ。

NICはどうやら Broadcom 2711 というSoCに付いているもの?のようで参考リンクに記載がある。

手順

一行追加

以下に一行追加

drivers/net/ethernet/broadcom/genet/bcmgenet.c

linux/bcmgenet.c at 96110e96f1a82e236afb9a248258f1ef917766e9 · raspberrypi/linux · GitHub

int i;

pr_info("====bcmgenet_xmit\n"); // ★追加
index = skb_get_queue_mapping(skb);

カーネルビルド

以下でビルド

Raspberry Pi 4 のカーネルビルドの最低限の手順メモ - memo.log

確認

LANケーブルを接続して少し通信させてみると、↓の通り、パケットが送信されるたびに一行出力される。

$ sudo tail -f /var/log/kern.log
May  3 15:28:23 kure10 kernel: [  341.514906] bcmgenet fd580000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
May  3 15:28:23 kure10 kernel: [  341.514959] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
May  3 15:28:23 kure10 kernel: [  341.554601] bcmgenet: ====bcmgenet_xmit
May  3 15:28:23 kure10 kernel: [  341.594867] bcmgenet: ====bcmgenet_xmit
May  3 15:28:24 kure10 kernel: [  341.824589] bcmgenet: ====bcmgenet_xmit
May  3 15:28:24 kure10 kernel: [  342.154625] bcmgenet: ====bcmgenet_xmit
May  3 15:28:25 kure10 kernel: [  343.079368] bcmgenet: ====bcmgenet_xmit

メモ

もう少し送信時の処理を深堀りしてみたい。イーサネットコントローラの仕様とにらめっこしてドライバの仕事を確認してみたい。

参考

qiita.com →Raspberry Pi4搭載のSoCについてのまとめ記事