免费注册 查看新帖 |

Chinaunix

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

[操作系统] 请教:如何把BOOTLOADER,内核,文件系统,制作成一个文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-07 11:03 |只看该作者 |倒序浏览
如题,请教各位大大,怎么把这三个文件制作成一个文件。我们公司的生产固件,确实是把这三个文件制作成一个文件的,但是我看不懂制作过程。有哪位大大能讲解下这个过程的原理?谢谢!!!

论坛徽章:
0
2 [报告]
发表于 2015-04-07 17:16 |只看该作者
最土的方法就是把这些都 烧写到硬件单板的 ROM里,然后把ROM所有内容读出来就哦了。

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
3 [报告]
发表于 2015-04-08 15:43 |只看该作者
比较简单的dd命令搞定。
或者cat a b c > d
或者用打包软件

方法有很多

论坛徽章:
0
4 [报告]
发表于 2015-04-09 10:49 |只看该作者
  9 DATA_VER1="$DATA_PRE-${CPU_TYPE}${DATA_VER}"
10 tar cfz ../update.tgz *
11 cd ..
12 cat update.tgz | ./tools/rc5-update-v7 -e > ${DATA_VER1}-`date '+%y%m%d'`.bin
这是我找到的脚本片断,和版主大大说的差不多,rc5-update-v7 是一个加密工具。
有点不清楚的就是,bootloader,内核,文件系统,这三个文件须要做什么样的处理吗?我看bootloader是:boot-no-header.bin,是去了文件头的。不知道版主大大能不能给详细的过程的链接,我在网上找了好久也没有找到。在此先谢过了!
回复 3# amarant


   

论坛徽章:
0
5 [报告]
发表于 2015-04-09 10:51 |只看该作者
嗯,开发新板子的时候,都会把原有的软件拷出来,刷回去也能用。这确实是一个办法。
回复 2# mysky0407


   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
6 [报告]
发表于 2015-04-09 11:00 |只看该作者
本帖最后由 arm-linux-gcc 于 2015-04-09 11:01 编辑

你这套是你司自己特有的,在网上肯定找不到,别人也没法回到你这种问题
你首先要搞清楚的就是你们的存储介质是什么,遇到坏块怎么处理,bootloader怎么怎么被加载的,bootloader是怎么加载内核的,文件系统映像如何制作,烧写的时候各自烧在什么位置
这些基本的东西你首先得搞清楚

论坛徽章:
0
7 [报告]
发表于 2015-04-09 12:01 |只看该作者
回复 6# arm-linux-gcc
各个文件的制作和烧写我是清楚的。我重新说下我的疑问,通常是把bootloader、内核、文件系统(也有内核和文件系统合在一起的)写在FLASH(我现在的存储介质)的不同位置(即不同的分区),各个分区一般都是没写满的。打个比方:bootloder:30K,内核文件系统(二合一)2M,boot分区100K,内核文件系统分区4M,如果直接把bootloader和内核文件系统用cat命令生成一个文件,内核就是紧接着bootloader,中间就没有70K的空间,这样肯定是不对的。所以,我想问这没用到的70k,在制件生产固件的时候,要怎么处理,是按照分区进行填充吗?我也没发现填充的脚本。。。



   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
8 [报告]
发表于 2015-04-10 11:18 |只看该作者
回复 7# 车田十夫


    比如100K的bootloader分区,其中bootloader.bin只占30K
先制作一个SIZE为100K的文件100K.bin,文件内容是全1(二进制的1,不是字符1)
然后:
cat bootloader.bin 100K.bin > bootloader_130.bin
dd if=boot_loader_130.bin of=bootloader_100.bin count=200 bs=512

论坛徽章:
0
9 [报告]
发表于 2015-06-01 15:26 |只看该作者
回复 2# mysky0407
终于搞明白我们公司的做法了:FLASH分区时,添加一个包含整块FLASH的分区,板子起来后,读取这个分区就是符合须要的文件了。原理和你说的一样。


   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:54:45
10 [报告]
发表于 2015-12-07 16:45 |只看该作者
回复 9# 车田十夫
真是土


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP