车田十夫 发表于 2015-04-07 11:03

请教:如何把BOOTLOADER,内核,文件系统,制作成一个文件

如题,请教各位大大,怎么把这三个文件制作成一个文件。我们公司的生产固件,确实是把这三个文件制作成一个文件的,但是我看不懂制作过程。有哪位大大能讲解下这个过程的原理?谢谢!!!

mysky0407 发表于 2015-04-07 17:16

最土的方法就是把这些都 烧写到硬件单板的 ROM里,然后把ROM所有内容读出来就哦了。

amarant 发表于 2015-04-08 15:43

比较简单的dd命令搞定。
或者cat a b c > d
或者用打包软件

方法有很多

车田十夫 发表于 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


   

车田十夫 发表于 2015-04-09 10:51

嗯,开发新板子的时候,都会把原有的软件拷出来,刷回去也能用。这确实是一个办法。
回复 2# mysky0407


   

arm-linux-gcc 发表于 2015-04-09 11:00

本帖最后由 arm-linux-gcc 于 2015-04-09 11:01 编辑

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

车田十夫 发表于 2015-04-09 12:01

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



   

arm-linux-gcc 发表于 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

车田十夫 发表于 2015-06-01 15:26

回复 2# mysky0407
终于搞明白我们公司的做法了:FLASH分区时,添加一个包含整块FLASH的分区,板子起来后,读取这个分区就是符合须要的文件了。原理和你说的一样。


   

yiguihuo 发表于 2015-12-07 16:45

回复 9# 车田十夫
真是土


   
页: [1]
查看完整版本: 请教:如何把BOOTLOADER,内核,文件系统,制作成一个文件