目录

pack tool

编译打包相关脚本文件。

vim -p  build.sh buildroot/scripts/mkcommon.sh buildroot/scripts/mkcmd.sh tools/pack/pack 

boot0

u-boot

$./build.sh -p sun50iw1p1

sys_config

sys_config 是全志 sunxi的配置脚本,区别linux kernel的dts,但是会作用于dts,以下梳理其完整链路。

dts

boot-resouce

boot-resource为用以uboot引导的一些资源文件,主要是包含一些背景图片。

整合资源文件后生成boot-resource.fex 和boot-resouce.ini 之后通过fat16 文件系统写入/dev/mmcblk0p2。

bootimg(kernel+ramdisk)

boot.img 为安卓引导的内核格式,其主要包含描述镜像的文件头和可执行的kernel和ramdisk。相信参考android boot image

linux-3.10/scripts/build.sh 为制作引导镜像脚本,其约定kernel和ramdisk可执行文件的偏移地址和通过mkbootimg 工具制作引导镜像文件。

 #"linux-3.10/scripts/build.sh"  line 287
 if [ ${bss_sz} -gt $((16#1000000)) ]; then
         RAMDISK_OFFSET="0x02000000";
 else
         RAMDISK_OFFSET="0x01000000";
 fi
 #modify ramdisk offset from 16m to 20m
 RAMDISK_OFFSET="0x01400000";
 ${MKBOOTIMG} --kernel ${BIMAGE} \
         --ramdisk ${RAMDISK} \
         --board ${CHIP} \
         --base ${BASE} \
         --kernel_offset ${KERNEL_OFFSET} \
         --ramdisk_offset ${RAMDISK_OFFSET} \
         -o output/boot.img

pack打包工具未对镜像做任何处理,软连接到了boot.fex。

ln -s ${LICHEE_OUT}/boot.img boot.fex

rootfs

rootfs 的制作通过build.sh moudle=all 制作,会选择buildroot/scripts/mkcommon.sh再到buildroot/scripts/mkcmd.sh,最终通过buildroot/target/debian/build.sh 打包镜像。

OUT_PATH="../../../out/dragonboard"
#"buildroot/target/debian/build.sh" line 36
buildroot/target/tools/host/usr/bin/make_ext4fs  -s -l $NEW_NR_SIZE"M" $TARGET_IMAGE ${LICHEE_TOP_DIR}/debian/
cp -v rootfs.ext4 $OUT_PATH/

pack打包工具未对镜像做任何处理,软连接到了rootfs.fex。

ln -s ${LICHEE_OUT}/rootfs.ext4 rootfs.fex