协助调试 FreeBSD 驱动程序(以太网问题)
我刚刚安装了 pfSense(一个 FreeBSD 发行版),并且我的以太网适配器出现了问题 - 我似乎能够使其进入无法 ping 任何机器的状态,尽管 ARP 表等都正确... (在我正在 ping 的机器上,我可以看到数据包到达并在 Wireshark 中发送响应,但远程机器什么也得不到)
由于对操作系统开发感兴趣且知识有限,我有点想尝试调试它,但是在很多方面,我不太确定从哪里开始:
- 如何获取我正在使用的驱动程序的源代码?它们会成为 FreeBSD 源代码的一部分,还是会有一些外部项目? (或者我使用的驱动程序可能是 Realtek 发布的专有驱动程序,因此没有源代码)
- 就此而言,我如何识别我当前正在使用的驱动程序?
- 最后,是否有关于如何调试内核级/设备驱动程序的好资源?
(如果我问了一些愚蠢的问题,或者我对我希望通过调试实现的目标过于乐观,我表示歉意,但尽管我在这方面缺乏经验,但我认为自己是一个聪明的人,我必须开始某处!)
I've just installed pfSense (a FreeBSD distro) and I'm having problems with my Ethernet adapters - I seem to be able to get it into a state where I cannot ping any machine despite the ARP tables etc... all being correct (On the machine I'm pinging I can see the packets arrive and the response sent in Wireshark, but the remote machine gets nothing)
Having an interest and limited knowedge in OS development I kind of want to have a go at debugging this, but in many ways I'm not really sure where to start:
- How do I go about getting the source code for the drivers I'm using? Will they be part of the FreeBSD source code, or is there going to be some external project? (or are the drivers I'm using likely to be the proprietry ones released by Realtek, and therefor not have source code)
- For that matter, how do I identify what drivers I'm currently using?
- Finally, are there any good resources on how to debug Kernel-level / device drivers?
(I appologise if I'm asking silly questions or if I seem overly optimistic about what I'm hoping to achieve by debugging this, but although I lack experience in this area I consider myself to be a smart guy and I've gotta start somewhere!)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我真的怀疑你的问题出在设备驱动程序或其他内核代码中。检查 PF 规则 - 您很可能只是正确丢弃所有 ICMP 数据包。
I really doubt your problem is in the device drivers or other kernel code. Check the PF rules - you most probably just dropping all ICMP packets out right.