在我们的设备上,我们观察到具有第 2 层多播地址的 IPv6 NS 数据包被丢弃。 tcpdump 无法捕获这些数据包,所以我猜这些数据包是网卡驱动程序丢弃的(如果我错了请纠正我)。
为了验证这一点,我想写一个模块来检查网卡中某些寄存器的值。由于我无法重新编译原始驱动程序,因此我需要一个单独的模块来完成这项工作。
这有可能吗?怎么办?
最佳答案
您可以重新编译驱动程序,添加 printk
以及您想要查看的任何内容。
如果您正在为 ARM 目标开发,您可能正在使用 Embedded Linux Dev Kit (ELDK) ,因此您可以在内核源代码树中查找驱动程序,修改它,然后重建内核。或者您可以删除常驻驱动程序并将其编译为可加载模块——这对于修补驱动程序要容易得多。
关于linux - 如何在ARM Linux上查看网卡的寄存器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545952/