linux - 如何在ARM Linux上查看网卡的寄存器值?

标签 linux networking linux-kernel driver

在我们的设备上,我们观察到具有第 2 层多播地址的 IPv6 NS 数据包被丢弃。 tcpdump 无法捕获这些数据包,所以我猜这些数据包是网卡驱动程序丢弃的(如果我错了请纠正我)。

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

这有可能吗?怎么办?

最佳答案

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

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

关于linux - 如何在ARM Linux上查看网卡的寄存器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545952/

相关文章:

swift 3.1.1.-在 linux copyItem 上发布(atPath :toPath:) is not yet implemented

java - address.isReachable 不会发现网络上的所有节点

c - 绑定(bind)到设备的原始套接字未接收所有数据包

security - AWS 上的 100% 无服务器架构是否需要 VPC?

linux - 当可执行文件运行时,如何知道调用了什么系统调用?

c - Linux 内核 write() 和 read() 函数

linux - Linux 中两条看似等效的路径,一条有效,一条无效

Linux - 将单个进程的核心利用率提取到文件中

linux - 用于将 Winapi 和 MFC 代码转换为等效 linux 版本的包装器

java - 如何连接局域网 (LAN) 之外的 DatagramSocket 服务器和客户端?