diff --git a/documents/rockchip/openEuler适配指南.md b/documents/rockchip/openEuler适配指南.md index efd30b2..bf7f074 100644 --- a/documents/rockchip/openEuler适配指南.md +++ b/documents/rockchip/openEuler适配指南.md @@ -112,7 +112,11 @@ POST_BOARD_OVERLAY() { - msdos: allwinner - 6. POST_BOARD_OVERLAY() + 6. boot_size + + 开发板系统镜像的大小,单位为:MB。 + + 7. POST_BOARD_OVERLAY() `POST_BOARD_OVERLAY()` 是执行复制 firmware 文件到根目录以及对目标开发板根目录执行特定操作的函数,其使用的变量与 [build_rootfs.sh](../../scripts/build_rootfs.sh) 相同,通常包含以下两个变量: diff --git a/scripts/boards/armsom-sige5.conf b/scripts/boards/armsom-sige5.conf index bc1f646..90ad630 100644 --- a/scripts/boards/armsom-sige5.conf +++ b/scripts/boards/armsom-sige5.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3576 arch=arm64 part_table=gpt +boot_size=512 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/firefly-itx-3588j.conf b/scripts/boards/firefly-itx-3588j.conf index 809bbae..f1305be 100644 --- a/scripts/boards/firefly-itx-3588j.conf +++ b/scripts/boards/firefly-itx-3588j.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3588 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/firefly-rk3399.conf b/scripts/boards/firefly-rk3399.conf index 52c43d2..c320c49 100644 --- a/scripts/boards/firefly-rk3399.conf +++ b/scripts/boards/firefly-rk3399.conf @@ -4,6 +4,7 @@ platform=rockchip soc_name=rk3399 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/firefly-roc-rk3566-pc.conf b/scripts/boards/firefly-roc-rk3566-pc.conf index 1ead54d..39c0ddf 100644 --- a/scripts/boards/firefly-roc-rk3566-pc.conf +++ b/scripts/boards/firefly-roc-rk3566-pc.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3566 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/firefly-roc-rk3568-pc-se.conf b/scripts/boards/firefly-roc-rk3568-pc-se.conf index fcc2151..cb6f1df 100644 --- a/scripts/boards/firefly-roc-rk3568-pc-se.conf +++ b/scripts/boards/firefly-roc-rk3568-pc-se.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3568 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/firefly-roc-rk3568-pc.conf b/scripts/boards/firefly-roc-rk3568-pc.conf index c043327..be978c8 100644 --- a/scripts/boards/firefly-roc-rk3568-pc.conf +++ b/scripts/boards/firefly-roc-rk3568-pc.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3568 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/firefly-roc-rk3588s-pc.conf b/scripts/boards/firefly-roc-rk3588s-pc.conf index 3dc6d3b..db00d4b 100644 --- a/scripts/boards/firefly-roc-rk3588s-pc.conf +++ b/scripts/boards/firefly-roc-rk3588s-pc.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3588 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/longanpi-3h.conf b/scripts/boards/longanpi-3h.conf index e3765f8..f4a0f81 100644 --- a/scripts/boards/longanpi-3h.conf +++ b/scripts/boards/longanpi-3h.conf @@ -5,6 +5,7 @@ platform=allwinner soc_name=h618 arch=arm64 part_table=msdos +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/orangepi-zero2.conf b/scripts/boards/orangepi-zero2.conf index 5f0bbc9..8866bf0 100644 --- a/scripts/boards/orangepi-zero2.conf +++ b/scripts/boards/orangepi-zero2.conf @@ -5,6 +5,7 @@ platform=allwinner soc_name=h616 arch=arm64 part_table=msdos +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/phytiumpi-4gb.conf b/scripts/boards/phytiumpi-4gb.conf index 312fdb7..9dadac3 100644 --- a/scripts/boards/phytiumpi-4gb.conf +++ b/scripts/boards/phytiumpi-4gb.conf @@ -5,6 +5,7 @@ platform=phytium soc_name=e2000q arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/radxa-rock-5b.conf b/scripts/boards/radxa-rock-5b.conf index 54bbe8a..3a1e23f 100644 --- a/scripts/boards/radxa-rock-5b.conf +++ b/scripts/boards/radxa-rock-5b.conf @@ -5,6 +5,7 @@ platform=rockchip soc_name=rk3588 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/radxa-rockpi-4a.conf b/scripts/boards/radxa-rockpi-4a.conf index 6d2d5f6..fdee9be 100644 --- a/scripts/boards/radxa-rockpi-4a.conf +++ b/scripts/boards/radxa-rockpi-4a.conf @@ -4,6 +4,7 @@ platform=rockchip soc_name=rk3399 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/raspberrypi.conf b/scripts/boards/raspberrypi.conf index 6c5b2b3..69d25c3 100644 --- a/scripts/boards/raspberrypi.conf +++ b/scripts/boards/raspberrypi.conf @@ -4,6 +4,7 @@ platform=broadcom soc_name= arch=arm64 part_table=msdos +boot_size=512 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/boards/sample.conf b/scripts/boards/sample.conf index d36679d..e73d699 100644 --- a/scripts/boards/sample.conf +++ b/scripts/boards/sample.conf @@ -4,6 +4,7 @@ platform=rockchip #Required! The platform of target board, which defaults to ro soc_name=rk3399 arch=arm64 part_table=gpt +boot_size=256 POST_BOARD_OVERLAY() { echo "Put ${board} firmware into rootfs..." diff --git a/scripts/build_boot.sh b/scripts/build_boot.sh index f29048a..ba0a27b 100755 --- a/scripts/build_boot.sh +++ b/scripts/build_boot.sh @@ -264,7 +264,6 @@ mk_boot() { dracut --no-kernel ${boot_dir}/initrd.img LOG "gen initrd done." - dtb_name=$(ls ${boot_dir} | grep dtb) LOG "gen extlinux config for $dtb_name" if [ "${platform}" == "rockchip" ];then bootargs=${rockchip_bootargs} @@ -279,13 +278,13 @@ mk_boot() { echo "label openEuler kernel /Image initrd /initrd.img - fdt /${dtb_name} + fdt /${dtb_name}.dtb append ${bootargs}" \ > ${boot_dir}/extlinux/extlinux.conf LOG "gen extlinux config done." fi - dd if=/dev/zero of=${workdir}/boot.img bs=1M count=240 status=progress + dd if=/dev/zero of=${workdir}/boot.img bs=1M count=${boot_size} status=progress mkfs.vfat -n boot ${workdir}/boot.img if [ -d ${workdir}/boot_emmc ];then rm -rf ${workdir}/boot_emmc; fi mkdir ${workdir}/boot_emmc diff --git a/scripts/gen_image.sh b/scripts/gen_image.sh index 41f58df..a6b1671 100755 --- a/scripts/gen_image.sh +++ b/scripts/gen_image.sh @@ -144,8 +144,8 @@ make_img(){ device="" LOSETUP_D_IMG - size=`ls -l --block-size=1MiB ${workdir}/rootfs.img | awk '{ print $5 }'` - size=$(($size+1100)) + root_size=`ls -l --block-size=1MiB ${workdir}/rootfs.img | awk '{ print $5 }'` + size=$((${root_size}+${boot_size}+880)) losetup -D img_file=${workdir}/${name}.img LOG create ${img_file} size of ${size}MiB @@ -154,11 +154,11 @@ make_img(){ LOG "create ${part_table} partition table." if [ "x${board}" == "xraspberrypi" ]; then section1_start=16384 - section1_end=1064959 else section1_start=32768 - section1_end=524287 fi + section1_end=$((${section1_start}+(${boot_size}*2048)-1)) + parted ${img_file} mklabel ${part_table} mkpart primary fat32 ${section1_start}s ${section1_end}s parted ${img_file} -s set 1 boot on parted ${img_file} mkpart primary ext4 $(($section1_end+1))s 100%