使用tftpd更新开发板内核

我们升级内核可以通过原厂提供的升级软件来进行,比如瑞芯微的RKDevTool.exe,只不过这种方式必须通过指定的OTG升级口,还得借助按键进入loader模式后才可以。

其实还可以利用一些通用的工具来进行升级,比如tftpd工具。

下载地址phjounin / tftpd64 / wiki / Download Tftpd64 --- Bitbucket

直接选择portble免安装版本,打开即可用,他有好几种工作模式,我们使用的是电脑做tftp服务端。

文件夹路径放置你想要用于传输的文件,可以有多个文件,点击show dir可以看到里面的文件,我这里单独建立一个文件夹,只放了一个内核镜像。

下面的IP是你电脑的IP,假设有多个网卡,选择你正在使用的那个(即将与开发板通信的)

接下来是开发板端的操作,上电后按CTRL+C打断启动,进入uboot,可以使用uboot指令,现在的uboot功能已经非常强大了,本次使用的uboot 2017.09支持tftp。

首先设置网络,我的板子和电脑在同一个网段,但还是要设置下,其中serverip是电脑,板子IP随便设不要跟局域网已有的冲突即可。

设置完网络后试着ping一下看通不通,第一次会报个错,但还是通的,再ping就很快。

使用tftp指令从电脑服务端下载文件,c0008000是你的内存地址,也就是RAM,所以如果文件超出了内存大小,那就用不了。我这里内存是8G,内核镜像256M,所以足够。

到这里文件已经下载完毕放在缓存里了,下一步就是写入存储介质里了,根据你的存储介质不同,可能会有不同的操作,我这里用的是emmc。先输入mmc进入mmc子系统,可以查看到它支持哪些指令。

我们首先需要擦除一下内核所在的分区,内核在哪呢,从之前烧录软件分区可知boot从0x0000a000起,一直到0x000ca000-1。

不过这里不是地址啊,从uboot指令也能看出来,用的单位是blk和cnt,每个blk表示512字节。

首先使用erase擦除这块存储,然后将内存里的数据再写进去。

之后就可以敲boot启动了 ,可以对比下,内核编译日期发生了变化,原内核5.6编译,现内核6.3编译(刚好处于换行,不那么清楚)

相关推荐
大树887 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠7 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质8 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush48 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5208 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz8 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工9 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智9 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩9 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_9 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化