uboot启动内核和根文件系统:通过dhcp设置bootcmd和bootargs来自动获取ip地址

uboot启动内核和根文件系统:通过dhcp设置bootcmd和bootargs来自动获取ip地址

一.问题描述:

首先我提前给ipaddr环境变量赋值为主机同一网段的任意一个ip(就是根据自己的意愿随便挑了一个ip地址):192.168.0.

然后昨天我是这样设置bootcmd和bootargs的:

bootcmd = tftp c2000000 uImage;tftp c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000
bootargs = console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.0.10:/home/leejieun/mp157/nfs/rootfs,proto=tcp,nfsvers=3 rw ip=192.168.0.8:192.168.0.10:192.168.0.1:255.255.255.0::eth0:of

这样搞,昨天一切正常,内核和跟文件系统都可以正常启动,但是到了今早上,发现uboot阶段一直ping不通服务器,bootcmd当然也无法成功使用tftp服务加载在服务器的内核和设备树镜像。然后就很蒙,细想一下,之前我好像也碰到过这种情况,我是这样解决的:

先别通过网络启动内核,而是通过开发板出场时在emmc烧写好的镜像启动内核(这种启动方式参考内核启动的几种常用方式),成功启动内核之后,调用ifconfig命令查看ip地址为192.168.0.5.此时重启进入uboot,将ipaddr改成192.168.0.5然后成功通过网络启动了

但是这样治标不治本!为什么昨天的ipaddr不行?这个我也不太清楚,可能昨天那个ip地址路由器是可用的,但是今天就不行了。那总不能每一天都这么麻烦,要先通过出场系统确定哪一个ip地址可用吧?所以解决办法就是通过dhcp命令自动获取可以用的ip地址。将bootcmd和bootargs命令分别改为如下:

bootcmd=dhcp;tftp c2000000 uImage;tftp c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000
bootargs=bootargs=console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.0.10:/home/leejieun/mp157/nfs/rootfs,proto=tcp,nfsvers=3 rw ip=dhcp

这样就可以自动获取开发板可以用的ip地址了,问题得以从根本上解决

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuiStar_李什么恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值