OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6818|回复: 11

@左神 嵌入式linux,在线升级方案,要求升级kernel rootfs 和 dtb文件

[复制链接]

7

主题

33

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-30
在线时间
22 小时
发表于 2020-6-24 08:38:10 | 显示全部楼层 |阅读模式
5金钱
STM32 有IAP 的方案, 现在如果用imx6ull 跑linux,大家有没有在UBOOT中升级 kernel rootfs 和dtb 做好的方案。因为是到客户那边升级,所以不好用MFG tool的升级方式,最好可以把kernel Uboot 和 dtb 做成一个文件,一次性一起烧录进去。 谢谢各位大佬

最佳答案

查看完整内容[请看2#楼]

简单说一下我之前做的一个解决方案。 1.在根文件搭建一个web服务器,通过网页形式提供人机交互界面。网页上提供升级按钮,升级实质是将uboot,内核和dtb从服务器下载下来。 2.下载成功后运行编写好的脚本文件,执行相应的写入命令,具体的指令参照正点原子手册单步跟新固件的说明手册。 说明:这种方法无法跟新根文件,只能在根文件上添加需要的文件,附图如下。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2019-3-18
在线时间
83 小时
发表于 2020-6-24 08:38:11 | 显示全部楼层
本帖最后由 memery 于 2020-6-24 15:31 编辑

简单说一下我之前做的一个解决方案。
1.在根文件搭建一个web服务器,通过网页形式提供人机交互界面。网页上提供升级按钮,升级实质是将uboot,内核和dtb从服务器下载下来。
2.下载成功后运行编写好的脚本文件,执行相应的写入命令,具体的指令参照正点原子手册单步跟新固件的说明手册。
说明:这种方法无法跟新根文件,只能在根文件上添加需要的文件,附图如下。
方法.jpg
回复

使用道具 举报

36

主题

245

帖子

0

精华

高级会员

Rank: 4

积分
771
金钱
771
注册时间
2016-9-10
在线时间
305 小时
发表于 2020-6-24 11:15:48 | 显示全部楼层
kernel好升级,把/dev/mmcblk1p1挂载到一个目录下,进去直接替换zimage就行。rootfs估计就得从SD卡启动替换了,因为正在运行的一个系统不能把自己给格式化;把要替换的rootfs打包也放在SD卡里面,从SD卡启动后把/dev/mmcblk1p2挂载挂载到一个目录下,进入目录然后rm -rf ./*,然后再tar vxf /***/***.tar.bz2 -C /***/mmcblk1p2/,解压完成就替换好了,再从emmc启动。
回复

使用道具 举报

7

主题

33

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-30
在线时间
22 小时
 楼主| 发表于 2020-6-28 09:17:33 | 显示全部楼层
memery 发表于 2020-6-24 15:30
简单说一下我之前做的一个解决方案。
1.在根文件搭建一个web服务器,通过网页形式提供人机交互界面。网页 ...

谢谢大佬,这种方法如果再升级的过程中网络断开或者异常断电好像就会让系统变砖,只能返厂救回来了吧?
回复

使用道具 举报

7

主题

33

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-30
在线时间
22 小时
 楼主| 发表于 2020-6-28 09:18:34 | 显示全部楼层
1491430114 发表于 2020-6-24 11:15
kernel好升级,把/dev/mmcblk1p1挂载到一个目录下,进去直接替换zimage就行。rootfs估计就得从SD卡启动替换 ...

这个还要考虑到如果升级失败,例如异常断电的情况,系统是不是就变砖了
回复

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2019-3-18
在线时间
83 小时
发表于 2020-6-28 09:36:27 | 显示全部楼层
本帖最后由 memery 于 2020-6-28 09:50 编辑
1044617234 发表于 2020-6-28 09:17
谢谢大佬,这种方法如果再升级的过程中网络断开或者异常断电好像就会让系统变砖,只能返厂救回来了吧?

你的电路没有掉电检测么??或者你就用卡刷就可以了,不用网络,本地操作。
回复

使用道具 举报

36

主题

245

帖子

0

精华

高级会员

Rank: 4

积分
771
金钱
771
注册时间
2016-9-10
在线时间
305 小时
发表于 2020-6-28 10:19:17 | 显示全部楼层
1044617234 发表于 2020-6-28 09:18
这个还要考虑到如果升级失败,例如异常断电的情况,系统是不是就变砖了

不会啊,让你从SD卡启动,更新EMMC,异常断电后再更新一次就行了,反正你SD卡的内容又不会因为断电丢失
回复

使用道具 举报

0

主题

134

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2020-5-8
在线时间
20 小时
发表于 2020-6-28 10:38:58 | 显示全部楼层
文件系统的话,不能系统启动的是EMMC的还能一边进行替换EMMC里的,推荐按照楼上的来升级,从SD卡启动。或者,挂载NFS里的文件系统以后,再把EMMC里的文件系统给替换成最新的,这样子弄。
回复

使用道具 举报

7

主题

33

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-30
在线时间
22 小时
 楼主| 发表于 2020-6-28 21:33:45 | 显示全部楼层
memery 发表于 2020-6-28 09:36
你的电路没有掉电检测么??或者你就用卡刷就可以了,不用网络,本地操作。

现在是没有SD卡接口的,我之前的想法是在UBOOT中升级所有的文件。升级的时候系统重启,下次重启之后停留在UBOOT中,在UBOOT中开一个TCP server,和上位机按一定格式传输文件,UBOOT拿到一帧文件就烧录eMMC一次。
回复

使用道具 举报

9

主题

767

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5274
金钱
5274
注册时间
2019-9-25
在线时间
433 小时
发表于 2020-6-29 09:21:17 | 显示全部楼层
memery 发表于 2020-6-24 15:30
简单说一下我之前做的一个解决方案。
1.在根文件搭建一个web服务器,通过网页形式提供人机交互界面。网页 ...

这样子,你可以备份一个文件系统,也就是说你的存储里分二个区,装两个文件系统,用一个文件系统去升级另外一个不就好了吗?
想思考的时候,有时还可以用屁股,QQ 1252699831
回复

使用道具 举报

7

主题

33

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-30
在线时间
22 小时
 楼主| 发表于 2020-12-22 13:57:54 | 显示全部楼层
你好,麻烦再问下,我们应用程序不就在根文件系统上存放嘛,你是怎么更新应用程序的呢?
回复

使用道具 举报

7

主题

33

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-30
在线时间
22 小时
 楼主| 发表于 2020-12-22 13:58:26 | 显示全部楼层
memery 发表于 2020-6-24 08:38
简单说一下我之前做的一个解决方案。
1.在根文件搭建一个web服务器,通过网页形式提供人机交互界面。网页 ...

你好,麻烦再问下,我们应用程序不就在根文件系统上存放嘛,你是怎么更新应用程序的呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 20:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表