Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add generic-aarch64 platform for ARM-based virtual appliances #2627

Merged
merged 5 commits into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ body:
- ova (Open Virtual Infrastructure)
- oci (Open Container Infrastructure)
- ha-addon (HomeAssistant Add-on)
- generic-aarch64 (ARM64 appliance)
- type: dropdown
validations:
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [rpi0, rpi2, rpi3, rpi4, rpi5, tinkerboard, odroid-c2, odroid-c4, odroid-n2, intelnuc, ova, oci_amd64, oci_arm64, oci_arm]
platform: [rpi0, rpi2, rpi3, rpi4, rpi5, tinkerboard, odroid-c2, odroid-c4, odroid-n2, intelnuc, ova, oci_amd64, oci_arm64, oci_arm, generic-aarch64]

steps:
- name: Checkout Code
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [rpi0, rpi2, rpi3, rpi4, rpi5, tinkerboard, odroid-c2, odroid-c4, odroid-n2, intelnuc, ova, oci_amd64, oci_arm64, oci_arm]
platform: [rpi0, rpi2, rpi3, rpi4, rpi5, tinkerboard, odroid-c2, odroid-c4, odroid-n2, intelnuc, ova, oci_amd64, oci_arm64, oci_arm, generic-aarch64]

steps:
- name: Checkout Code
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: ${{ fromJSON(format('[{0}]', (github.event.inputs.platforms == '' || github.event.inputs.platforms == 'all') && '"rpi0","rpi2","rpi3","rpi4","rpi5","tinkerboard","odroid-c2","odroid-c4","odroid-n2","intelnuc","ova","oci_amd64","oci_arm64","oci_arm"' || github.event.inputs.platforms)) }}
platform: ${{ fromJSON(format('[{0}]', (github.event.inputs.platforms == '' || github.event.inputs.platforms == 'all') && '"rpi0","rpi2","rpi3","rpi4","rpi5","tinkerboard","odroid-c2","odroid-c4","odroid-n2","intelnuc","ova","oci_amd64","oci_arm64","oci_arm","generic-aarch64"' || github.event.inputs.platforms)) }}

steps:
- name: Checkout Code
Expand Down
40 changes: 40 additions & 0 deletions buildroot-external/board/generic-aarch64/genimage.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
image boot.vfat {
vfat {
extraargs = "-n bootfs"

files = {
"VERSION",
"efi-part/EFI",
"recoveryfs-initrd",
"recoveryfs-Image"
}
}
size = 256M
}

image sdcard.img {
hdimage {
disk-uuid = deedbeef-0000-0000-0000-000000000000
partition-table-type = "gpt"
}

partition boot {
image = "boot.vfat"
partition-uuid = deedbeef-0000-0000-0000-000000000001
partition-type-uuid = U
offset = 32K
bootable = true
}

partition rootfs {
partition-uuid = deedbeef-0000-0000-0000-000000000002
partition-type-uuid = L
image = "rootfs.ext4"
}

partition userfs {
partition-uuid = deedbeef-0000-0000-0000-000000000003
partition-type-uuid = L
image = "userfs.ext4"
}
}
29 changes: 29 additions & 0 deletions buildroot-external/board/generic-aarch64/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# default settings
set timeout="5"
set gfxpayload=1024x768x32,1024x768,auto

# search for our main filesystems
search --no-floppy --label bootfs --set=bootfs
search --no-floppy --label rootfs --set=rootfs
search --no-floppy --label userfs --set=userfs

# identify if we should boot into recovery system
# or normal system per default
if [ -e ($userfs)/.recoveryMode -o ! -e ($rootfs)/Image ]; then
# recovery system
set default="1"
else
# normal system
set default="0"
fi

# menu entry definitions
menuentry "RaspberryMatic" {
set root=$rootfs
linux /Image console=tty2 root=PARTUUID=deedbeef-0000-0000-0000-000000000002 ro rootwait rootdelay=5 rootfstype=ext4 fsck.repair=yes init_on_alloc=1 init_on_free=1 slab_nomerge pti=on net.ifnames=0 quiet loglevel=0
}
menuentry "RaspberryMatic-recovery" {
set root=$bootfs
linux /recoveryfs-Image console=tty2 root=/dev/ram0 ro rootwait rootdelay=5 init_on_alloc=1 init_on_free=1 slab_nomerge pti=on net.ifnames=0 quiet loglevel=0
initrd /recoveryfs-initrd
}
58 changes: 58 additions & 0 deletions buildroot-external/board/generic-aarch64/kernel.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
CONFIG_EFI_STUB=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set

CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
CONFIG_CP15_BARRIER_EMULATION=y
CONFIG_SETEND_EMULATION=y

CONFIG_FB=y
CONFIG_FB_EFI=y

CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_BLK_SCSI=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_MMIO=y
CONFIG_SCSI_VIRTIO=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_IOMMU=m
CONFIG_CRYPTO_ENGINE=m
CONFIG_CRYPTO_DEV_VIRTIO=m

# These options are needed for virtio-fs
CONFIG_FUSE_FS=y
CONFIG_VIRTIO_FS=y
CONFIG_DAX=y
CONFIG_FS_DAX=y
CONFIG_ZONE_DEVICE=y

CONFIG_DMI_SYSFS=m
CONFIG_FW_CFG_SYSFS=m

CONFIG_NVME_CORE=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_HWMON=y

CONFIG_DRM=y
CONFIG_DRM_VIRTIO_GPU=y

CONFIG_HYPERVISOR_GUEST=y
CONFIG_HYPERV=y
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m
CONFIG_HYPERV_KEYBOARD=m
CONFIG_HYPERV_STORAGE=y
CONFIG_HYPERV_NET=y
CONFIG_HYPERV_VSOCKETS=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_HYPERV_INTERFACE=m
CONFIG_FB_HYPERV=y
19 changes: 19 additions & 0 deletions buildroot-external/board/generic-aarch64/post-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

# Stop on error
set -e

# copy the kernel image to rootfs
cp -a "${BINARIES_DIR}/Image" "${TARGET_DIR}/"

# create VERSION file
echo "VERSION=${PRODUCT_VERSION}" >"${TARGET_DIR}/VERSION"
echo "PRODUCT=${PRODUCT}" >>"${TARGET_DIR}/VERSION"
echo "PLATFORM=generic-aarch64" >>"${TARGET_DIR}/VERSION"

# fix some permissions
[ -e "${TARGET_DIR}/etc/monitrc" ] && chmod 600 "${TARGET_DIR}/etc/monitrc"

# link VERSION in /boot on rootfs
mkdir -p "${TARGET_DIR}/boot"
ln -sf ../VERSION "${TARGET_DIR}/boot/VERSION"
28 changes: 28 additions & 0 deletions buildroot-external/board/generic-aarch64/post-image.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh

# Stop on error
set -e

#MKIMAGE=${HOST_DIR}/usr/bin/mkimage
BOARD_DIR="$(dirname "$0")"
BOARD_NAME="$(basename "${BOARD_DIR}")"

#
# Create user filesystem
#
echo "Create user filesystem"
mkdir -p "${BUILD_DIR}/userfs"
touch "${BUILD_DIR}/userfs/.doFactoryReset"
rm -f "${BINARIES_DIR}/userfs.ext4"
"${HOST_DIR}/sbin/mkfs.ext4" -d "${BUILD_DIR}/userfs" -F -L userfs -I 256 -E lazy_itable_init=0,lazy_journal_init=0 "${BINARIES_DIR}/userfs.ext4" 3000

#
# VERSION File
#
cp "${TARGET_DIR}/boot/VERSION" "${BINARIES_DIR}"

# copy our grub.cfg to the EFI dir
cp -a "${BOARD_DIR}/grub.cfg" "${BINARIES_DIR}/efi-part/EFI/BOOT/"

# create *.img file using genimage
support/scripts/genimage.sh -c "${BR2_EXTERNAL_EQ3_PATH}/board/${BOARD_NAME}/genimage.cfg"
28 changes: 28 additions & 0 deletions buildroot-external/board/generic-aarch64/post-release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash

# Stop on error
set -e

#BOARD_DIR=${1}
PRODUCT=${2}
PRODUCT_VERSION=${3}
BOARD=$(echo "${PRODUCT}" | cut -d'_' -f2-)

# change into release dir
cd ./release

# copy the *.img and create checksum
cp -a "../build-${PRODUCT}/images/sdcard.img" "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img"
sha256sum "RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img" >"RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img.sha256"

# prepare the release *.zip
rm -f "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.zip"
zip --junk-paths "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.zip" "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img" "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img.sha256" ../LICENSE "./updatepkg/${PRODUCT}/EULA.de" "./updatepkg/${PRODUCT}/EULA.en"
sha256sum "RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.zip" >"RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.zip.sha256"

# create manifest file with checksum+sizes
rm -f "RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.mf"

# shellcheck disable=SC2129
echo "$(stat -c %s "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img") $(cat "RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.img.sha256")" >>"RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.mf"
echo "$(stat -c %s "./RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.zip") $(cat "RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.zip.sha256")" >>"RaspberryMatic-${PRODUCT_VERSION}-${BOARD}.mf"
112 changes: 112 additions & 0 deletions buildroot-external/configs/raspmatic_generic-aarch64.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
BR2_aarch64=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
BR2_ROOTFS_LIB_DIR="lib"
BR2_ROOTFS_LIB32_DIR="lib32"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_EQ3_PATH)/overlay/base $(BR2_EXTERNAL_EQ3_PATH)/overlay/base-raspmatic $(BR2_EXTERNAL_EQ3_PATH)/overlay/WebUI $(BR2_EXTERNAL_EQ3_PATH)/overlay/WebUI-raspmatic $(BR2_EXTERNAL_EQ3_PATH)/overlay/RFD"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_EQ3_PATH)/board/generic-aarch64/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_EQ3_PATH)/board/generic-aarch64/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.73"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_EQ3_PATH)/kernel/global.config $(BR2_EXTERNAL_EQ3_PATH)/kernel/device-support.config $(BR2_EXTERNAL_EQ3_PATH)/kernel/security-arm64.config $(BR2_EXTERNAL_EQ3_PATH)/kernel/security.config $(BR2_EXTERNAL_EQ3_PATH)/board/generic-aarch64/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_LINUX_TOOLS_GPIO=y
BR2_PACKAGE_DOSFSTOOLS=y
BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y
BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E4DEFRAG=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_EXFAT=y
BR2_PACKAGE_EXFAT_UTILS=y
BR2_PACKAGE_F2FS_TOOLS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_PSPLASH=y
BR2_PACKAGE_PSPLASH_PATCH="$(BR2_EXTERNAL_EQ3_PATH)/patches/psplash/raspmatic"
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_I915=y
BR2_PACKAGE_LINUX_FIRMWARE_RADEON=y
BR2_PACKAGE_LINUX_FIRMWARE_IBT=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
BR2_PACKAGE_ACPID=y
BR2_PACKAGE_I2C_TOOLS=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_SMARTMONTOOLS=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE=y
BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y
BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE=y
BR2_PACKAGE_USBMOUNT=y
BR2_PACKAGE_LIBGPIOD=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_LIBUSB=y
BR2_PACKAGE_QEMU_GUEST_AGENT=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y
BR2_PACKAGE_CHRONY=y
BR2_PACKAGE_IFPLUGD=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_WIRELESS_REGDB=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_WEXT=y
BR2_PACKAGE_WPA_SUPPLICANT_WIRED=y
BR2_PACKAGE_WPA_SUPPLICANT_IBSS_RSN=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY=y
BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING=y
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT=y
BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y
BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION=y
BR2_PACKAGE_OPENVMTOOLS=y
BR2_PACKAGE_UTIL_LINUX_RFKILL=y
BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="1G"
BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS=""
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop regexp loadenv echo cat test configfile search"
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
BR2_PACKAGE_MULTILIB32=y
BR2_PACKAGE_MULTILIB32_CONFIG_FRAGMENT_FILE="multilib32_arm_a72.config"
BR2_PACKAGE_RECOVERY_SYSTEM=y
BR2_PACKAGE_RECOVERY_SYSTEM_CONFIG_FRAGMENT_FILE="recovery_generic-aarch64.config"
BR2_PACKAGE_RPI_RF_MOD=y
5 changes: 5 additions & 0 deletions buildroot-external/overlay/base/etc/init.d/S01InitHost
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,11 @@ identify_host() {
HM_HOST="nuc"
;;

# generic-aarch64
generic-aarch64)
HM_HOST="generic-aarch64"
;;

# default fallback
*)
HM_HOST="${PLATFORM}"
Expand Down
2 changes: 1 addition & 1 deletion buildroot-external/overlay/base/etc/init.d/S02InitRTC
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ init_rtc_device() {

# load the i2c_dev module if this is not a virtual
# applicance but a real rpi/tinkerboard
if ! echo "${HM_HOST}" | grep -E -q "oci|ova-|nuc"; then
if ! echo "${HM_HOST}" | grep -E -q "oci|ova-|nuc|generic-"; then
modprobe i2c_dev
fi

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ check_factory_reset() {
DEV="/dev/$(readlink "/sys/dev/block/${DEVNODE}" | awk -F/ '{print $(NF-1)}')"

# find out maximum SD card size (in cylinders)
START_CHS=$(parted -s "${DEV}" unit chs print | grep "^ ${PARTNUM} " | awk '{print $2}')
END_CHS=$(parted -s "${DEV}" unit chs print | grep "^ ${PARTNUM} " | awk '{print $3}')
MAX_CHS=$(parted -s "${DEV}" unit chs print | grep "Disk ${DEV}" | cut -d' ' -f3)
START_CHS=$(parted -s -f "${DEV}" unit chs print | grep "^ ${PARTNUM} " | awk '{print $2}')
END_CHS=$(parted -s -f "${DEV}" unit chs print | grep "^ ${PARTNUM} " | awk '{print $3}')
MAX_CHS=$(parted -s -f "${DEV}" unit chs print | grep "Disk ${DEV}" | cut -d' ' -f3)

# umount /usr/local to regenerate it
umount -f /usr/local
Expand All @@ -37,7 +37,7 @@ check_factory_reset() {
if [[ -n "${START_CHS}" && -n "${END_CHS}" && -n "${MAX_CHS}" && "${END_CHS}" != "${MAX_CHS}" ]]; then
# use resizepart to resize the /usr/local partition to the maximum size of
# the disk
parted -s "${DEV}" resizepart "${PARTNUM}" 100%
parted -s -f "${DEV}" resizepart "${PARTNUM}" 100%
fi

# force PARTUUID to 0xDEEDBEEF (because parted changes partuuid) even
Expand Down
Loading
Loading