UBOOT 网络启动时卡死在DHCP位置分析及解决办法

使用百问网IMX6ULL开发板网络启动时程序一直卡在DHCP那里,分析后发现在网络启动那里的bootargs参数里ip=dhcp,而此时开发板未连接路由器,是通过交换机和电脑连接的,此时要设置静态IP,使用以下命令,将IP这个参数映射到clinetip这个参数,并设置clinetip参数为静态IP。

setenv netargs 'setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=${clinetip} nfsroot=${serverip}:${nfsroot},v3,tcp'
setenv clinetip '192.168.2.30:192.168.2.20:192.168.2.1:255.255.255.0::eth0:off'

注:
ip参数的格式为 ip=::::::
client-ip: 你正在使用的这块板子,你要为它设置的ip
server-ip: 提供nfs服务的服务器的ip地址。如不需要NFS服务于板子,则此项可以空置
gw-ip: 网关的ip地址,如果nfs与目标板在同一个网段内,则此项可以空置
netmask: 子网掩码,如此项为空,则子网掩码为默认值255.255.255.0
hostname: 你希望给目标板设置的主机名,在linux的shell中的如bash,命令行最开始有一个形如 blacksword@laptop:~ $ 这样的一个提示符,blacksword指当前的用户,而laptop就是一个hostname. 此项可以留空
device: 如果目标板上仅一个网卡,且只接了一个PHY,同时电路的设计没有将PHY拉出两个地址来,则此项为空。 如果不指有一个网卡,则可以指定要设置的ip地址是作用于哪一个网卡的。 如指定给第一块网卡,则该参数为eth0. 第二块为eth1,依此类推。
autoconf:
自动配置未明确指定参数的方式,可以是dhcp, rarp, bootp。如果不希望使用自动配置则可以使用off值来关闭 autoconf参数可以独立作用于ip参数,如ip=dhcp即表示由dhcp服务器给内核的ip参数提供所有数据。 ip=off则表示所有参数都不配置,留待系统启动进行配置。

你可能感兴趣的:(嵌入式Linux)