fix UKI support on aarch64

This commit is contained in:
Tobias Powalowski 2023-02-03 20:23:04 +01:00
parent d9790c1da9
commit 709745d955

View file

@ -394,16 +394,13 @@ _do_efistub_uefi() {
_do_efistub_parameters _do_efistub_parameters
_common_bootloader_checks _common_bootloader_checks
if [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then if [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then
_FIRMWARE="FIRMWARE" _ADDITIONAL_BOOTLOADER="rEFInd"
_FIRMWARE_DESC="Unified Kernel Image for ${_UEFI_ARCH} UEFI" _ADDITIONAL_BOOTLOADER_DESC="rEFInd for ${_UEFI_ARCH} UEFI"
_FIRMWARE_MENU="FIRMWARE boot or"
_REFIND="rEFInd"
_REFIND_DESC="rEFInd for ${_UEFI_ARCH} UEFI"
fi fi
_dialog --menu "Select ${_FIRMWARE_MENU} UEFI Boot Manager\nto provide a menu for the EFISTUB kernels?" 11 60 3 \ _dialog --menu "Select FIRMWARE boot or an UEFI Boot Manager\nto provide a menu for the EFISTUB kernels?" 11 60 3 \
"${_FIRMWARE}" "${_FIRMWARE_DESC}" \ "FIRMWARE" "Unified Kernel Image for ${_UEFI_ARCH} UEFI" \
"SYSTEMD-BOOT" "SYSTEMD-BOOT for ${_UEFI_ARCH} UEFI" \ "SYSTEMD-BOOT" "SYSTEMD-BOOT for ${_UEFI_ARCH} UEFI" \
"${_REFIND}" "${_REFIND_DESC}" 2>"${_ANSWER}" "${_ADDITIONAL_BOOTLOADER}" "${_ADDITIONAL_BOOTLOADER_DESC}" 2>"${_ANSWER}"
case $(cat "${_ANSWER}") in case $(cat "${_ANSWER}") in
"FIRMWARE") _do_uki_uefi;; "FIRMWARE") _do_uki_uefi;;
"SYSTEMD-BOOT") _do_systemd_boot_uefi ;; "SYSTEMD-BOOT") _do_systemd_boot_uefi ;;
@ -511,12 +508,17 @@ _do_uki_uefi() {
_dialog --infobox "Setting up Unified Kernel Image now. This needs some time..." 3 70 _dialog --infobox "Setting up Unified Kernel Image now. This needs some time..." 3 70
sleep 5 sleep 5
echo "${_KERNEL_PARAMS_MOD}" > "${_CMDLINE}" echo "${_KERNEL_PARAMS_MOD}" > "${_CMDLINE}"
grep -q '^ALL_microcode=(/boot/\*-ucode.img)' "${_MKINITCPIO_PRESET}" || \ if [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then
echo "ALL_microcode=(/boot/*-ucode.img)" >> "${_MKINITCPIO_PRESET}" grep -q '^ALL_microcode=(/boot/\*-ucode.img)' "${_MKINITCPIO_PRESET}" || \
echo "ALL_microcode=(/boot/*-ucode.img)" >> "${_MKINITCPIO_PRESET}"
fi
grep -q "default_uki=\"${_UEFISYS_MP}/EFI/Linux/archlinux-linux.efi\"" "${_MKINITCPIO_PRESET}" || \ grep -q "default_uki=\"${_UEFISYS_MP}/EFI/Linux/archlinux-linux.efi\"" "${_MKINITCPIO_PRESET}" || \
echo "default_uki=\"${_UEFISYS_MP}/EFI/Linux/archlinux-linux.efi\"" >> "${_MKINITCPIO_PRESET}" echo "default_uki=\"${_UEFISYS_MP}/EFI/Linux/archlinux-linux.efi\"" >> "${_MKINITCPIO_PRESET}"
grep -q "default_options=\"--splash /usr/share/systemd/bootctl/splash-arch.bmp\"" "${_MKINITCPIO_PRESET}" || \ if [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then
echo "default_options=\"--splash /usr/share/systemd/bootctl/splash-arch.bmp\"" >> "${_MKINITCPIO_PRESET}" _KERNEL_IMAGE="--kernelimage /boot/Image"
fi
grep -q "default_options=\"${_KERNEL_IMAGE} --splash /usr/share/systemd/bootctl/splash-arch.bmp\"" "${_MKINITCPIO_PRESET}" || \
echo "default_options=\"${_KERNEL_IMAGE} --splash /usr/share/systemd/bootctl/splash-arch.bmp\"" >> "${_MKINITCPIO_PRESET}"
[[ -d ${_DESTDIR}/${_UEFISYS_MP}/EFI/Linux ]] || mkdir -p "${_DESTDIR}/${_UEFISYS_MP}/EFI/Linux" [[ -d ${_DESTDIR}/${_UEFISYS_MP}/EFI/Linux ]] || mkdir -p "${_DESTDIR}/${_UEFISYS_MP}/EFI/Linux"
_run_mkinitcpio _run_mkinitcpio
if [[ -e "${_DESTDIR}/${_UEFISYS_MP}/EFI/Linux/archlinux-linux.efi" ]]; then if [[ -e "${_DESTDIR}/${_UEFISYS_MP}/EFI/Linux/archlinux-linux.efi" ]]; then