2011-09-25 140 views
0

在我们的设备上,我们观察到IPv6组播地址为Layer2的IPv6 NS数据包被拒绝。 tcpdump无法捕获这些数据包,所以我猜这些数据包是由网卡驱动程序丢弃的(纠正我,如果我错了)。如何在ARM Linux上检查网卡的寄存器值?

要验证这一点,我想编写一个模块来检查网卡中某些寄存器的值。由于我不可能重新编译原始驱动程序,所以我需要一个单独的模块来完成这项工作。

有没有可能这样做?怎么样?

+0

为什么你不能重新编译驱动程序?如果你不能重新编译驱动程序,那么即使你找到了,你又如何修复这个错误? – bdonlan

+0

,因为我只是想确认并找到当前阶段的错误 – deepsky

回答

1

您可以重新编译驱动程序,将printk添加到您想要查看的任何内容中。

如果您正在为ARM目标开发,则可能使用的是Embedded Linux Dev Kit (ELDK),因此您可以在内核源代码树中查找驱动程序,修改它并重建内核。或者你可以删除驻留的驱动程序,并将其编译为可加载模块—,这对于修改驱动程序来说更容易。