You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
3.4 KiB
70 lines
3.4 KiB
# At the time of writing, the binaries below were uploaded manually. However,
|
|
# they are simply a vanilla U-Boot build of v2020.07, from Ubuntu 18.04, using
|
|
# these commands:
|
|
# make CROSS_COMPILE=arm-linux-gnueabihf- am335x_boneblack_vboot_defconfig
|
|
# make CROSS_COMPILE=arm-linux-gnueabihf-
|
|
# make CROSS_COMPILE=arm-linux-gnueabihf- envtools
|
|
BEAGLEBONE_BLACK_BINARIES="beaglebone_black_uefi-2020.07.tar.gz"
|
|
BEAGLEBONE_BLACK_BINARIES_URL="${MENDER_STORAGE_URL}/mender-convert/uboot/beaglebone/${BEAGLEBONE_BLACK_BINARIES}"
|
|
|
|
# At the time of writing, the binaries below were uploaded manually. They are
|
|
# simply a dump of the deb package from the link below, with the addition of the
|
|
# initrd file, which is not part of the package, but which is generated when
|
|
# installed on a live Beaglebone device.
|
|
# Original deb URL: http://repos.rcn-ee.com/debian/pool/main/l/linux-upstream/linux-image-4.19.94-ti-r51_1buster_armhf.deb
|
|
BEAGLEBONE_EFI_COMPATIBLE_KERNEL="linux-image-4.19.94-ti-r51_1buster_armhf-deb-dump.tar.xz"
|
|
BEAGLEBONE_EFI_COMPATIBLE_KERNEL_URL="${MENDER_STORAGE_URL}/mender-convert/beaglebone/kernel/${BEAGLEBONE_EFI_COMPATIBLE_KERNEL}"
|
|
BEAGLEBONE_EFI_COMPATIBLE_KERNEL_VERSION=4.19.94-ti-r51
|
|
|
|
MENDER_IGNORE_UBOOT_BROKEN_UEFI=1
|
|
MENDER_IGNORE_MISSING_EFI_STUB=1
|
|
|
|
function beaglebone_fix_broken_uefi_uboot() {
|
|
log_warn "Attempting to work around broken UEFI support in U-Boot by forcing a newer U-Boot version."
|
|
|
|
mkdir -p work/bbb/binaries
|
|
|
|
run_and_log_cmd "wget -q ${BEAGLEBONE_BLACK_BINARIES_URL} -P work/bbb/binaries"
|
|
run_and_log_cmd "tar xzvf work/bbb/binaries/${BEAGLEBONE_BLACK_BINARIES} -C work/bbb/binaries"
|
|
|
|
# Place u-boot and MLO into rootfs/boot
|
|
run_and_log_cmd "sudo mkdir -p work/rootfs/boot"
|
|
run_and_log_cmd "sudo cp work/bbb/binaries/MLO work/boot/"
|
|
run_and_log_cmd "sudo cp work/bbb/binaries/u-boot.img work/boot/"
|
|
|
|
run_and_log_cmd "sudo install -m 755 work/bbb/binaries/fw_printenv work/rootfs/sbin/fw_printenv"
|
|
run_and_log_cmd "sudo ln -fs /sbin/fw_printenv work/rootfs/sbin/fw_setenv"
|
|
}
|
|
|
|
function beaglebone_fix_broken_uefi_kernel() {
|
|
log_warn "Attempting to work around kernel without EFI stub by using a newer kernel."
|
|
|
|
mkdir -p work/bbb/kernel
|
|
run_and_log_cmd "wget -q $BEAGLEBONE_EFI_COMPATIBLE_KERNEL_URL -P work/bbb/kernel"
|
|
mkdir -p work/bbb/kernel/extract
|
|
run_and_log_cmd "tar xJf work/bbb/kernel/$BEAGLEBONE_EFI_COMPATIBLE_KERNEL -C work/bbb/kernel/extract"
|
|
run_and_log_cmd "cp -r work/bbb/kernel/extract/* work/rootfs/"
|
|
run_and_log_cmd "ln -sf vmlinuz-$BEAGLEBONE_EFI_COMPATIBLE_KERNEL_VERSION work/rootfs/boot/kernel"
|
|
run_and_log_cmd "ln -sf initrd.img-$BEAGLEBONE_EFI_COMPATIBLE_KERNEL_VERSION work/rootfs/boot/initrd"
|
|
}
|
|
|
|
function beaglebone_fix_broken_uefi() {
|
|
if ! is_uboot_with_uefi_support work/boot-gap.bin; then
|
|
beaglebone_fix_broken_uefi_uboot
|
|
fi
|
|
if ! is_efi_compatible_kernel work/rootfs/boot/$kernel_imagetype; then
|
|
beaglebone_fix_broken_uefi_kernel
|
|
fi
|
|
}
|
|
PLATFORM_MODIFY_HOOKS+=(beaglebone_fix_broken_uefi)
|
|
|
|
function disable_udisks2_service() {
|
|
# Mask udisks2.service, otherwise it will mount the inactive part and we
|
|
# might write an update while it is mounted which often result in
|
|
# corruptions.
|
|
#
|
|
# TODO: Find a way to only blacklist mmcblk0pX devices instead of masking
|
|
# the service.
|
|
run_and_log_cmd "sudo ln -sf /dev/null work/rootfs/etc/systemd/system/udisks2.service"
|
|
}
|
|
PLATFORM_MODIFY_HOOKS+=(disable_udisks2_service)
|
|
|