Add support for AArch64/ARM64 EFI architecture (#1757)

* Add AArch64/ARM64 EFI boot support (for QEMU and some boards)
* Allow GRUB to load cmdline.txt-like
* Enable qcow2/vmdk disk images

Co-authored-by: Stefan Agner <stefan@agner.ch>
This commit is contained in:
Mark Dietzer
2022-02-23 01:42:02 -08:00
committed by GitHub
parent 81b3bc8787
commit 0f4016c180
13 changed files with 331 additions and 17 deletions

View File

@@ -293,21 +293,18 @@ function _fix_disk_spl_mbr() {
function convert_disk_image_virtual() {
local hdd_ext="${1}"
local hdd_img="$(hassos_image_name img)"
local hdd_vmdk="$(hassos_image_name vmdk)"
local hdd_vhdx="$(hassos_image_name vhdx)"
local hdd_vdi="$(hassos_image_name vdi)"
local hdd_qcow2="$(hassos_image_name qcow2)"
local hdd_virt="$(hassos_image_name "${hdd_ext}")"
local -a qemu_img_opts=()
rm -f "${hdd_vmdk}"
rm -f "${hdd_vhdx}"
rm -f "${hdd_vdi}"
rm -f "${hdd_qcow2}"
if [ "${hdd_ext}" == "vmdk" ]; then
qemu_img_opts=("-o" "adapter_type=lsilogic")
fi
qemu-img convert -O vmdk -o adapter_type=lsilogic "${hdd_img}" "${hdd_vmdk}"
qemu-img convert -O vhdx "${hdd_img}" "${hdd_vhdx}"
qemu-img convert -O vdi "${hdd_img}" "${hdd_vdi}"
qemu-img convert -O qcow2 "${hdd_img}" "${hdd_qcow2}"
rm -f "${hdd_virt}"
qemu-img convert -O "${hdd_ext}" "${qemu_img_opts[@]}" "${hdd_img}" "${hdd_virt}"
}
function convert_disk_image_ova() {

View File

@@ -8,7 +8,14 @@ function _create_rauc_header() {
echo "mountprefix=/run/rauc"
echo "statusfile=/mnt/data/rauc.db"
echo "bootloader=${BOOTLOADER}"
if [ "${BOOTLOADER}" == "grub" ]; then
if [ "${BOOT_SYS}" == "efi" ]; then
echo "grubenv=/mnt/boot/EFI/BOOT/grubenv"
else
echo "grubenv=/mnt/boot/grubenv"
fi
fi
echo "[keyring]"
echo "path=/etc/rauc/keyring.pem"
) > "${TARGET_DIR}/etc/rauc/system.conf"
@@ -77,7 +84,7 @@ function install_bootloader_config() {
if [ "${BOOTLOADER}" == "uboot" ]; then
# shellcheck disable=SC1117
echo -e "/dev/disk/by-partlabel/hassos-bootstate\t0x0000\t${BOOT_ENV_SIZE}" > "${TARGET_DIR}/etc/fw_env.config"
else
elif [ "${BOOTLOADER}" == "barebox" ]; then
cp -f "${BR2_EXTERNAL_HASSOS_PATH}/bootloader/barebox-state-efi.dtb" "${TARGET_DIR}/etc/barebox-state.dtb"
fi