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についてのまとめ記事