mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-19 19:40:37 +02:00
add limine uefi support
This commit is contained in:
parent
6f6d2a7c65
commit
409af39239
1 changed files with 46 additions and 1 deletions
|
@ -372,10 +372,12 @@ _do_efistub_uefi() {
|
|||
fi
|
||||
_dialog --title " EFISTUB Menu " --menu "" 9 60 3 \
|
||||
"FIRMWARE" "Unified Kernel Image for ${_UEFI_ARCH} UEFI" \
|
||||
"LIMINE" "LIMINE for ${_UEFI_ARCH} UEFI" \
|
||||
"SYSTEMD-BOOT" "SYSTEMD-BOOT for ${_UEFI_ARCH} UEFI" \
|
||||
"${_ADDITIONAL_BOOTLOADER}" "${_ADDITIONAL_BOOTLOADER_DESC}" 2>"${_ANSWER}"
|
||||
case $(cat "${_ANSWER}") in
|
||||
"FIRMWARE") _do_uki_uefi;;
|
||||
"FIRMWARE") _do_uki_uefi ;;
|
||||
"LIMINE") _do_limine_uefi ;;
|
||||
"SYSTEMD-BOOT") _do_systemd_boot_uefi ;;
|
||||
"rEFInd") _do_refind_uefi ;;
|
||||
esac
|
||||
|
@ -423,6 +425,49 @@ GUMEOF
|
|||
fi
|
||||
}
|
||||
|
||||
_do_limine_uefi() {
|
||||
if [[ ! -f "${_DESTDIR}/usr/bin/limine" ]]; then
|
||||
_PACKAGES="limine"
|
||||
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0
|
||||
_pacman_error
|
||||
fi
|
||||
_dialog --no-mouse --infobox "Setting up Limine now..." 3 60
|
||||
[[ -d "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT" ]] || mkdir -p "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/"
|
||||
cp -f "${_DESTDIR}/usr/share/limine/BOOT${_SPEC_UEFI_ARCH}.efi" "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/limine_${_SPEC_UEFI_ARCH}.efi"
|
||||
_LIMINE_CONFIG="${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/limine.cfg"
|
||||
cat << CONFEOF > "${_LIMINE_CONFIG}"
|
||||
TIMEOUT=5
|
||||
|
||||
:Arch Linux
|
||||
PROTOCOL=linux
|
||||
KERNEL_PATH=boot:///${_KERNEL}
|
||||
CMDLINE=${_KERNEL_PARAMS_MOD}
|
||||
CONFEOF
|
||||
if [[ -n "${_INITRD_UCODE}" ]]; then
|
||||
echo "MODULE_PATH=boot:///${_INITRD_UCODE}" >> "${_LIMINE_CONFIG}"
|
||||
fi
|
||||
echo "MODULE_PATH=boot:///${_INITRD}" "${_LIMINE_CONFIG}"
|
||||
if [[ -e "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/limine_${_SPEC_UEFI_ARCH}.efi" ]]; then
|
||||
_BOOTMGR_LABEL="Limine"
|
||||
_BOOTMGR_LOADER_PATH="/EFI/BOOT/limine_${_SPEC_UEFI_ARCH}.efi"
|
||||
_do_uefi_bootmgr_setup
|
||||
mkdir -p "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT"
|
||||
rm -f "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/BOOT${_UEFI_ARCH}.EFI"
|
||||
cp -f "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/limine_${_SPEC_UEFI_ARCH}.efi" "${_DESTDIR}/${_UEFISYS_MP}/EFI/BOOT/BOOT${_UEFI_ARCH}.EFI"
|
||||
sleep 2
|
||||
_dialog --msgbox "You will now be put into the editor to edit:\nrefind.conf\n\nAfter you save your changes, exit the editor." 8 50
|
||||
_geteditor || return 1
|
||||
"${_EDITOR}" "${_LIMINE_CONFIG}"
|
||||
_do_efistub_copy_to_efisys | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Copying kernel, ucode and initramfs to EFI SYSTEM PARTITION now..." 6 75 0
|
||||
_dialog --title " Success " --no-mouse --infobox "Limine has been setup successfully." 3 50
|
||||
sleep 3
|
||||
_S_BOOTLOADER=1
|
||||
|
||||
else
|
||||
_dialog --msgbox "Error setting up Limine." 3 40
|
||||
fi
|
||||
}
|
||||
|
||||
_do_refind_uefi() {
|
||||
if [[ ! -f "${_DESTDIR}/usr/bin/refind-install" ]]; then
|
||||
_PACKAGES="refind"
|
||||
|
|
Loading…
Reference in a new issue