为什么uboot下,龙芯1B开发板能ping通主机和虚拟机,但是虚拟机、主机ping不通开发板?

为什么uboot下,龙芯1B开发板能ping通主机和虚拟机,但是虚拟机、主机ping不通开发板?


在uboot命令输入状态下,当使用ping命令时,实际上是uboot先根据你输入的IP地址,发送一个ICMP 回送请求回答报文到对应主机,然后再等待一段时间,如果在这段时间后主机没有响应,则显示ping不通,主机如果在这段时间内发送了回答报文,则显示能ping通。
当使用主机或者虚拟机ping龙芯时,开发板正处于 main_loop循环中(等待用户输入命令),没有对应的程序或中断(uboot一般不适用中断)来检测主机的ping命令,因此,显示ping不通。
因此,不用纠结为什么虚拟机和主机ping不通龙芯1B是不是哪里有问题,只需要开发板能ping通主机,就可以使用 tftp命令,进行uboot环境下的内核或者文件系统的刷机等操作了。
另外,uboot是一个 单线程main_loop函数+中断处理的架构,中断处理程序处理窗口输入输出等,main_loop解uboot命令。负责数据并处理ICMP包。
uboot的ping是一个NETLOOP发送和接收ARP包的命令。LOOP会不断检测是否接收到ARP REPLY,所以可以ping通电脑。

猜你喜欢

转载自blog.csdn.net/baidu_31788709/article/details/89151741