免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14809 | 回复: 19
打印 上一主题 下一主题

[操作系统] 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs) v1.0 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-06 21:05 |只看该作者 |倒序浏览
本帖最后由 crifan 于 2012-11-19 10:24 编辑


如果有任何疑问,请先去查看最新版本:

在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

仍有疑问,再回帖询问或联系本人:admin (at) crifan.com

谢谢合作。



在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

版本:1.0

作者:crifan

邮箱:green-waste (at) 163.com




根据之前说的,打算写个这方面的帖子的,最近花时间写的,终于写好了,现在发出来。
技术有限,难免有误,欢迎探讨。
由于此文内容偏长,不方便粘贴发表,所以感兴趣者,请去下载对应pdf版本:
在Linux运行期间升级Linux系统(Uboot kernel Rootfs) v1.0 【含附件】.pdf (809.92 KB, 下载次数: 3543)

版本历史
版本号时间内容
1.02011-05-03介绍了如何实现在线升级linux系统,即uboot,kernel,rootfs, 以及相关的前提知识和准备工作





目录
1.    正文之前... 3
1.1.    此文目的... 3
1.2.    一点说明... 3
2.    嵌入式系统中,如何在Linux运行的时候去升级Linux系统... 4
2.1.    前提... 4
2.1.1.     Linux中已经实现Nor Flash驱动... 4
2.1.1.1.    在开发板相关部分添加对应nor flash初始化相关代码... 4
2.1.1.2.    Linux通用nor flash驱动m25p80.c简介... 5
2.1.2.     Linux中已实现了U盘挂载,以方便拷贝要升级的文件... 8
2.1.3.     Linux中Nor Flash和Nand Flash已能正常工作... 8
2.1.4.     已经准备好了mtd工具... 8
2.1.4.1.    mtd-util简介... 8
2.1.4.2.    mtd中的/dev/mtdN与/dev/mtdblockN的区别... 14
2.2.    准备工作... 15
2.2.1.     准备好要升级的文件... 15
2.2.2.     拷贝文件并挂载分区... 15
2.3.    利用mtd工具升级Linux系统... 15
2.3.1.     升级Uboot 17
2.3.2.     升级Kernel 18
2.3.3.     升级rootfs. 18
2.3.4.     总结... 18

图表
图表 1 MTD工具简介... 8
图表 2 要升级的Linux系统的文件... 15
图表 3 Linux系统中的Nand MTD分区

评分

参与人数 1可用积分 +10 信誉积分 +2 收起 理由
bitmilong + 10 + 2 原创内容

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2011-05-17 11:32 |只看该作者
回复 1# crifan


    这个不错,必须顶!!!

论坛徽章:
0
3 [报告]
发表于 2011-05-17 13:45 |只看该作者
阅读中,不错。

论坛徽章:
0
4 [报告]
发表于 2011-05-17 14:16 |只看该作者
经 crifan 兄这么一整理,看起来还真不难哈。

有个问题
怎么确定当前有写flash的操作的进程都关掉了,要不要创建一个守护进程?

论坛徽章:
0
5 [报告]
发表于 2011-05-17 14:26 |只看该作者
回复 4# bitmilong


    flash的操作进程这方面,我还真是记不清了。
好像是:
(1)直接用write工具操作/dev/mtdN的字符设备,写数据,对于文件系统上层,应该是不知道的。
(2)关于和nand flash读写的相关的进程,我记得就只是pdflush。而对于升级几十M的rootfs+kernel+uboot时间,好像也就也就几十秒至1,2分钟吧。

所以:
这段相对不长的时间内,先关闭pdflush进程,然后再升级rootfs,升级完后,立刻重启,就是新升级后的系统了。

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
6 [报告]
发表于 2011-06-02 16:25 |只看该作者
很给力啊,欢迎兄弟的精彩分享啊!

论坛徽章:
0
7 [报告]
发表于 2011-06-03 12:40 |只看该作者
回复 1# crifan


    类似的升级方式我以前也做过,但是遇到了一个问题,就是升级往rootfs之后需要重启,如果想从命令行运行命令reboot就会出问题,因为rootfs里面的东西已经变了,使用原来的文件系统信息去定位reboot这个app是找不到的,不知楼主解决过这个问题没有?(如果是手动断电强行重启的话请无视我的帖子)

论坛徽章:
0
8 [报告]
发表于 2011-06-03 13:15 |只看该作者
回复 7# garyv


    记不清客户当时是如何弄的了。但是应该可以通过将reboot或者shutdown等等所用到的程序,先事先放到temp下面,其中temp是挂载的ramdisk,即放在内存RAM里面的,所以不存在找不到的情况。

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
9 [报告]
发表于 2011-06-07 12:01 |只看该作者
我顶

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
10 [报告]
发表于 2011-06-09 17:05 |只看该作者
我再顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP