Buildroot编译
正常rootfs的编译
cd /data/mp/buildroot make mp_rootfs_defconfig make -j 4
完成编译后,生成的根文件系统为:/data/mp/buildroot/output/images/ rootfs.tar,这个在后续生成updata.zip时会用到。
用于recovery的rootfs编译
cd /data/mp/buildroot-recovery make mp_recovery_defconfig make -j 4
完成编译后,生成的根文件系统为:/data/mp/buildroot-recovery/output/images/ rootfs.cpio.lz4,这个在后续生成recovery的内核Image时会用到。
用于usb recovery的rootfs编译
cd /data/mp/buildroot-usb-recovery make mp_usb_recovery_defconfig make -j 4
完成编译后,生成的根文件系统为:/data/mp/buildroot-usb-recovery/output/images/ rootfs.cpio.lz4,这个在后续生成usb recovery的内核Image时会用到。
内核编译
内核编译前要先保证/data/mp/buildroot已经完成编译了,因为内核编译的交叉编译工具链采用的buildroot生成的交叉编译工具链;
正常内核的编译
正常内核就是最终烧写到emmc上的kernel分区的Image镜像。
cd /data/mp/kernel export PATH=$PATH:/data/mp/buildroot/output/host/bin make -C /data/mp/kernel-src ARCH=arm64 O=/data/mp/kernel mvebu_v8_lsp_defconfig make -C /data/mp/kernel-src ARCH=arm64 O=/data/mp/kernel CROSS_COMPILE=aarch64-buildroot-linux-gnu- -j 4
完成编译后,生成的内核镜像为:/data/mp/kernel/arch/arm64/boot/Image
用于recovery的内核的编译
用于recovery的内核就是最终烧写到emmc上的recovery分区的Image镜像。
cd /data/mp/kernel-recovery export PATH=$PATH:/data/mp/buildroot/output/host/bin make -C /data/mp/kernel-src ARCH=arm64 O=/data/mp/kernel-recovery mvebu_v8_lsp_recovery_defconfig make -C /data/mp/kernel-src ARCH=arm64 O=/data/mp/kernel-recovery CROSS_COMPILE=aarch64-buildroot-linux-gnu- -j 4
完成编译后,生成的内核镜像为:/data/mp/kernel-recovery/arch/arm64/boot/Image;由于该镜像会集成前面buildroot-recovery生成的rootfs.cpio.lz4作为ramdisk,所以buildroot-recovery要先于该内核完成编译。
用于usb recovery的内核的编译
用于usb recovery的内核就是放到U盘根目录Image镜像;该镜像可以用于当emmc上的recovery分区也损坏的情况下通过U盘进行对整个系统进行恢复。
cd /data/mp/kernel-usb-recovery export PATH=$PATH:/data/mp/buildroot/output/host/bin make -C /data/mp/kernel-src ARCH=arm64 O=/data/mp/kernel-usb-recovery mvebu_v8_lsp_usb_recovery_defconfig make -C /data/mp/kernel-src ARCH=arm64 O=/data/mp/kernel-usb-recovery CROSS_COMPILE=aarch64-buildroot-linux-gnu- -j 4
完成编译后,生成的内核镜像为:/data/mp/kernel-usb-recovery/arch/arm64/boot/Image;由于该镜像会集成前面buildroot-usb-recovery生成的rootfs.cpio.lz4作为ramdisk,所以buildroot-usb-recovery要先于该内核完成编译。
Bootloader编译
cd /data/mp/u-boot make ARCH=arm catdrive_mmc_defconfig export PATH=$PATH:/data/mp/buildroot/output/host/bin make ARCH=arm CROSS_COMPILE=aarch64-buildroot-linux-gnu- -j 4 export BL33=/data/mp/u-boot/u-boot.bin export WTP=/data/mp/A3700_utils export CROSS_CM3=/usr/bin/arm-linux-gnueabi- cd /data/mp/atf-v1.5 make DEBUG=1 USE_COHERENT_MEM=0 MV_DDR_PATH=/data/mp/mv-ddr LOG_LEVEL=20 MARVELL_SECURE_BOOT=0 CLOCKSPRESET=CPU_1000_DDR_800 DDR_TOPOLOGY=2 BOOTDEV=EMMCNORM PARTNUM=1 PLAT=a3700 all fip CROSS_COMPILE=aarch64-buildroot-linux-gnu-
进入uboot的命令行
bubt flash-image.bin mmc usb reset env default -f -a env save reset
OTA升级包制作
4.1 准备升级包所需要的各种文件
4.1.1 更新内核所需要的相关文件
cp -rf /data/mp/kernel/arch/arm64/boot/Image /data/mp/buildroot/utils/ota-tools/src-obj/kernel/ cp -rf /data/mp/kernel/arch/arm64/boot/dts/marvell/armada-3720-catdrive.dtb /data/mp/buildroot/utils/ota-tools/src-obj/kernel/
更新rootfs所需要的相关文件
cp -rf /data/mp/buildroot/output/images/rootfs.tar /data/mp/buildroot/utils/ota-tools/src-obj/
更新recovery所需要的相关文件
cp -rf /data/mp/kernel-recovery/arch/arm64/boot/Image /data/mp/buildroot/utils/ota-tools/src-obj/recovery/ cp -rf /data/mp/kernel-recovery/arch/arm64/boot/dts/marvell/armada-3720-catdrive.dtb /data/mp/buildroot/utils/ota-tools/src-obj/recovery/
更新app所需要的相关文件
把app分区所需要的各种文件复制到/data/mp/buildroot/utils/ota-tools/src-obj/app/;建议可执行程序放到/data/mp/buildroot/utils/ota-tools/src-obj/app/bin,动态库文件放到/data/mp/buildroot/utils/ota-tools/src-obj/app/lib。
制作各种OTA升级包
制作OTA升级包前需要确认相关文件已经复制到指定目录了。
4.2.1 制作recovery分区升级全量包
cd /data/mp/buildroot/utils/ota-tools ./make-ota -u
制作kernel分区升级全量包
cd /data/mp/buildroot/utils/ota-tools ./make-ota -k
制作rootfs分区升级全量包
cd /data/mp/buildroot/utils/ota-tools ./make-ota -r
制作app分区升级全量包
cd /data/mp/buildroot/utils/ota-tools ./make-ota -a
制作app分区升级增量包
cd /data/mp/buildroot/utils/ota-tools ./make-ota -i
制作backup分区升级全量包(恢复出厂设置用)
cd /data/mp/buildroot/utils/ota-tools ./make-ota -f
制作具有格式化data分区功能的升级包
./make-ota -w 4.2.8 制作具有分区功能的升级包 该功能只适合通过U盘上的recovery进行升级(2.3章节生成的Image),不能用emmc上的recovery进行升级;make-ota -p这个命令就可以生成具有分区功能的升级包。 cd /data/mp/buildroot/utils/ota-tools ./make-ota -p 如果要修改各个分区大小可以直接编辑make-ota这个文件,如图4-1所示;分区大小的单位是MB。
后续省略。。。自行下载观看。。。
本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有!
若您需要使用非免费的软件、源码或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!
本站所有资源均是收集而来,资源均不包含技术支持和安装服务!
请先
!