From ca6785555346320067255de8936eef44b0ef4bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Pe=C4=8Dovnik?= Date: Sun, 14 Jun 2020 23:03:58 +0200 Subject: [PATCH] Add GPT partition table support (#2015) * Add GPT parition table support Leave unchanged / mbr by default since GPT doesn't works everywhere. * Accept ROOTFS_PARTITION_TABLE as a parameter Signed-off-by: Igor Pecovnik * Change variable name Signed-off-by: Igor Pecovnik * Update README.md --- config/boards/README.md | 1 + lib/build-all-ng.sh | 2 +- lib/configuration.sh | 1 + lib/debootstrap.sh | 8 ++++---- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/config/boards/README.md b/config/boards/README.md index 61d163ae87..f318368d0d 100644 --- a/config/boards/README.md +++ b/config/boards/README.md @@ -5,6 +5,7 @@ | BOARDFAMILY | [sun8i, sun7i, rockchip64](../sources) | | BOOTCONFIG | name of u-boot config | | BOOTSIZE | size of a separate boot partition in Mib | +| IMAGE_PARTITION_TABLE | "msdos" (default) or "gpt" (boot loader must supports it) | | BOOTFS_TYPE | boot partition type: ext4, fat | | DEFAULT_OVERLAYS | usbhost1 usbhost2 ... | | DEFAULT_CONSOLE | serial = change default boot output | diff --git a/lib/build-all-ng.sh b/lib/build-all-ng.sh index bcfb142832..c4947c4f3e 100644 --- a/lib/build-all-ng.sh +++ b/lib/build-all-ng.sh @@ -57,7 +57,7 @@ unset LINUXFAMILY LINUXCONFIG KERNELDIR KERNELSOURCE KERNELBRANCH BOOTDIR BOOTSO DEB_STORAGE REPO_STORAGE REPO_CONFIG REPOSITORY_UPDATE PACKAGE_LIST_RELEASE LOCAL_MIRROR COMPILE_ATF \ PACKAGE_LIST_DESKTOP_BOARD PACKAGE_LIST_DESKTOP_FAMILY ATF_COMPILE ATFPATCHDIR OFFSET BOOTSOURCEDIR BOOT_USE_BLOBS \ BOOT_SOC DDR_BLOB MINILOADER_BLOB BL31_BLOB BOOT_RK3328_USE_AYUFAN_ATF BOOT_USE_BLOBS BOOT_RK3399_LEGACY_HYBRID \ - BOOT_USE_MAINLINE_ATF BOOT_USE_TPL_SPL_BLOB OFFLINE_WORK + BOOT_USE_MAINLINE_ATF BOOT_USE_TPL_SPL_BLOB OFFLINE_WORK IMAGE_PARTITION_TABLE } pack_upload () diff --git a/lib/configuration.sh b/lib/configuration.sh index cb06c09b65..92ae558908 100644 --- a/lib/configuration.sh +++ b/lib/configuration.sh @@ -84,6 +84,7 @@ ATF_COMPILE=yes [[ -z $WIREGUARD ]] && WIREGUARD="yes" [[ -z $EXTRAWIFI ]] && EXTRAWIFI="yes" [[ -z $AUFS ]] && AUFS="yes" +[[ -z $IMAGE_PARTITION_TABLE ]] && IMAGE_PARTITION_TABLE="msdos" # single ext4 partition is the default and preferred configuration #BOOTFS_TYPE='' diff --git a/lib/debootstrap.sh b/lib/debootstrap.sh index 7e07a4e66a..a5a9e96fe9 100644 --- a/lib/debootstrap.sh +++ b/lib/debootstrap.sh @@ -415,17 +415,17 @@ prepare_partitions() # stage: create partition table display_alert "Creating partitions" "${bootfs:+/boot: $bootfs }root: $ROOTFS_TYPE" "info" - parted -s ${SDCARD}.raw -- mklabel msdos + parted -s ${SDCARD}.raw -- mklabel ${IMAGE_PARTITION_TABLE} if [[ $ROOTFS_TYPE == nfs ]]; then # single /boot partition - parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$bootfs]} ${bootstart}s -1s + parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$bootfs]} ${bootstart}s 100% elif [[ $BOOTSIZE == 0 ]]; then # single root partition - parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$ROOTFS_TYPE]} ${rootstart}s -1s + parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$ROOTFS_TYPE]} ${rootstart}s 100% else # /boot partition + root partition parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$bootfs]} ${bootstart}s ${bootend}s - parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$ROOTFS_TYPE]} ${rootstart}s -1s + parted -s ${SDCARD}.raw -- mkpart primary ${parttype[$ROOTFS_TYPE]} ${rootstart}s 100% fi # stage: mount image