最近在Raspberry Pi上装了OpenELEC。启动后进入XBMC界面,却发现时间是1970年1月1号。立刻怀疑是网络没连上。查看路由器,发现虽然路由器给Pi分配了IP地址,但是从XBMC->System->System Info->Summary反映的IP地址却不是路由器分配的。而且无法ping路由器分配的那个IP地址。
一般的DHCP协议握手的流程是:
CLIENT -> DHCPDISCOVERSERVER -> DHCPOFFERCLIENT -> DHCPREQUESTSERVER -> DHCPACK
再仔细看路由器的DHCP日志发现,Pi发出了DHCPDISCOVR,然后路由器回应了DHCPOFFER,但Pi接下来却没有按常理发出DHCPREQUEST。根据网上的网络高手说,有可能是DHCPOFFER没有传到Pi。这可能是Pi和DHCP服务器之间的网络设备异常引起的。我的Pi和路由器之间确实有一个小型交换机。如果是他引起的问题那么其它通过有线接入的设备也会有相同的问题。于是我把网线插入笔记本,然后观察DHCP服务器日志,发现确实有相同的症状。于是重新接了交换机上的所有网线并重启,然后所有的有线接入设备都能通过DHCP获得IP地址了。