驱动程序测试:基本 DHCP¶
测试原理¶
通过 DHCP 获取 IPv4 地址可能是最简单的完整收发数据路径测试。因此,应在进行任何更复杂的数据路径测试之前先尝试此测试。

测试步骤¶
- 开始之前,确保系统电源已关闭,并且网线已连接到提供 DHCP 服务器的网络。
- 开机并引导到 iPXE 命令行。
- 使用
ifstat确定你的网络接口名称(下文假定为net0)。 - 使用
dhcp net0打开接口并发起 DHCP 请求。 - 验证
dhcp命令无错误完成。 - 使用
route验证分配的 IPv4 地址在预期范围内。
故障排除¶
排查此测试最简单的方法通常是结合使用 DEBUG 构建选项、ifstat 显示的错误计数器,以及在 DHCP 服务器上进行数据包捕获。
首先验证 DHCP 请求被完整发出;在发送数据路径按预期工作之前,尝试调试接收数据路径(通常更复杂)是没有意义的。
一旦确认发送正常(通过能够在线路上观察到你的 DHCP 请求和服务器的 DHCP 响应来验证),再检查 ifstat 报告的接收错误(RXE)。特别要注意 http://ipxe.org/3c086003 之类的错误,它可能表明你的驱动程序接收到的是空数据或垃圾数据。你可能需要在驱动程序中开始转储接收到的数据包内容,例如使用如下代码:
// temporary hack - dump content of received packet
DBGC_HDA ( netdev, 0, iobuf->data, iob_len ( iobuf ) );
检查你的驱动程序是否确实使用 iob_put() 填入了接收数据包的长度;如果没有,iPXE 会把所有接收到的数据包视为长度为零。