单独烧录kernel文件,非裸烧内核,与及tftp服务器出错

好久没有更新博客了,最近工作比较忙,就没有时间记录博客,现在刚好有时间,而且以后打算每周五更新一次博客,也是对一周知识的总结。
我们知道,一个linux板端运行主要是依赖于三个文件,u-boot(启动文件)、kernel(内核)、rootfs(根文件系统),一般情况下我们使用的时候会直接把这些文件文件打包成一个镜像文件直接烧录进去,或者是打包成分区烧录,但在实际工作过程中,往往会遇到需要修改内核,或者是文件系统然后需要再编译烧录到板端,这个时候就需要知道怎么非裸烧,也就是单独烧录。

一、准备工作

1、板端需要连接网线
2、主机端需要设置好相关的ip(接下来备用)
3、准备好一个tftp服务,很多软件都有,我直接用的是MobaXterm软件自带的

二、配置板端

在板端之后马上点击任意按键进入u-boot启动模式,大概如图:
输入指令printenv:
在这里插入图片描述
可以发现这个时候板端还没有配置ip,所以下一步应该先配置相关的地址,可以一次性直接复制进去然后回车

setenv ipaddr    192.168.0.30
setenv serverip  192.168.0.28
setenv gatewayip 192.168.0.1
setenv netmask   255.255.255.0
setenv ethaddr 38:cd:1d:01:10:88

简单陈述一下上面的命令行:
setenv ipaddr 192.168.0.30 //板端地址,这个任意设置,需要注意的是要设置在和服务器同一网段下
setenv serverip 192.168.0.28 //这个是服务器地址,也就是你将使用哪个提供tftp服务的地址,同电脑
setenv gatewayip 192.168.0.1//这个是网段,这个需要同路由器地址
setenv netmask 255.255.255.0//这个是子网掩码,同你电脑
setenv ethaddr 38💿1d:01:10:88//这个是板端的物理地址,这个物理地址需要是独一无二的,可以任意设置,但同一网段下物理地址不能重复,也就是说同一个办公室下板端物理地址设置不能设置相同。

输入

sa

保存,然后再次输入printenv可以看出,这个时候已经设置成功
在这里插入图片描述这个时候网络已经配置好了,现在先验证一下网络能不能使用
输入ping 192.168.0.28 ping一下服务器地址

ping 192.168.0.28

在这里插入图片描述
出现 host 192.168.0.28 is alive 说明网络是正常使用,而且板端配置已经准备就绪。

接下来输入以下命令

mw.b 82000000 0xff 400000

mw.b 82000000 0xff 400000 表示从82000000 地址写入400000个字节数,为什么是82000000 这个需要根据芯片文档给的物理地址适当调整 为什么是400000?,这个需要根据内核本身大小,比如这里规划内核文件大小为4M,4102410244=4194304,16进制刚好为400000.

接下来打开服务器:
在这里插入图片描述

在这里插入图片描述
注意:这里的文件一定要和tftp服务器的文件名保持一致,不然会出错:
可以根据对比下图查找文件是否出错:
在这里插入图片描述利用tftp服务器进行传输文件,命令如下:

tftp 82000000 uImage

成功如图:
在这里插入图片描述
这个时候表示传输成功,接下来需要写入到flash中,需要注意的是实现要区别好flash类型,因为不同的flash类型,它们对用的写入指令不同,
如:

SPI NOR Flash
sf probe 0;sf erase 100000 400000;sf write 82000000 100000 400000

sf probe 0;sf erase 100000 400000;sf write 82000000 100000 400000

这里是适应于nand flash
指令如下:

nand erase 100000 400000
nand write 82000000 100000 400000

这里的400000,为文件的实际大小,用16进制数表示,和前面计算方式一样。
然后输入

sa

保存成功,这样我们重新编译的内核,就成功烧录成功了!

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值