在内核目录执行make zImage,在内核中生成了zImage文件,开发中,是通过烧写boot.img文件,即zImage+rootfs文件;所以需要制作boot.img文件
一、查找生成boot.img文件
1、根据编译时终端输出信息,查找文件位置
查看编译输出信息,查找关键信息,发现有关boot.img相关的输出信息,查找boot.img的输出信息,或者邻近几条的输出信息,我查找的是build_ramfs。
dragonboard$
grep 'build_ramfs' * -r
找到文件在linux-3.4/scripts/目录下,打开build.sh文件
二、build.sh文件解析
build.sh是一个bash脚本,总共有四个功能
build_kernel
build_modules
build_ramfs
gen_output
而制作boot.img只需要build_ramfs功能
三、制作用于生成boot.img文件的脚本文件
制作好的脚本文件在这里,参考原有脚本裁剪,只保留了regen_rootfs_cpio(),build_ramfs()函数;功能只有build_ramfs功能;
1、脚本使用方法
首先将build_bootimg.sh脚本放入linux-3.4$目录,并查看是否有执行权限ls xxx.sh -l,若没有执行权限 chmod +x xxx.sh,
1)、删除output目录的文件
rm -rf output
mkdir output
2)、将make zImage生成的image文件拷贝到output目录
cp arch/arm/boot/Image output/bImage
3)、删除之前的rootfs打包文件,重新打包
rm rootfs.cpio.gz
./e_build.sh c rootfs.cpio.gz
cp rootfs.cpio.gz output/
最终在linux-3.4/output/目录下,有bImage,rootfs.cpio.gz文件,这两个文件会制作生成boot.img。
4)、执行脚本命令生成boot.img文件
在linux-3.4 $ 目录下执行,build_bootimg.sh
./build_bootimg.sh
烧写,重启
uboot#fastboot
win10
linux#