客户询问我们是否有DHCP Client,分析发现只要把CONFIG_IP_PNP_DHCP选中并且编译进入内核,并且传入命令行ip=dhcp通知内核自动配置网络参数。
参考linux/Documentation/nfsroot.txt实验如下:
u-boot:
把$addip从
setenv bootargs ${bootargs} ip3902.mac_address=${ethaddr} ip=${ipaddr}:${serverip}::::${ethport}
改成
setenv bootargs ${bootargs} ip3902.mac_address=${ethaddr} ip=dhcp
,其中内核命令行:ip=dhcp,即要求内核启动时通过dhcp协议配置自身ip地址,网络掩码等。

内核启动后可以看到如下信息:
eth0: link up, 10Mbps, half-duplex, lpa 0x45E1
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.100.99
IP-Config: Complete:
      device=eth0, addr=192.168.100.99, mask=255.255.255.0, gw=192.168.100.254,
     host=192.168.100.99, domain=cn.trid.com, nis-domain=(none),
     bootserver=0.0.0.0, rootserver=192.168.100.90, rootpath=
可见DHCP启动成功。