在safe mode的实现中,需要保持原有master部分的稳定,所以对master系统的building system不做大的改动,也就是保持safe mode的building system与master的building system共存。原则上来说,要避免对master系统带来大的冲突。
Master building system主要涉及到的编译过程为:
make
make rootfs
这个时候将得到master.bin
safe mode building system和其类似,只是make rootfs部分有所区分:
make
make smrootfs
这个时候将得到safemode.bin
最后再将master与safe
mode部分做一个合并,得到一个整的rootfs
make dualrootfs
make dist
make
dualrootfs将调用一个外部的程序make_dual.c,所做的事情是要得到一个15872K的rootfs。这个rootfs包含的内容为master.bin + safemode.bin。
本系统中一般master.bin的大小约为10000K,再加上safemode.bin的4M,总大小并未达到15872K,那么中间多出的部分,我们需要将其补0填充好。需要补充的0的大小约为15872-4*1024-10000=1776K