Download UEFI Shell IA32 v2 and v1 from Tianocore EDK2 SVN repo

Remove 'efi_no_storage_paranoia' kernel parameter from ISO booting and setup script

Remove not needed 'gpt' kernel parameter
This commit is contained in:
Tobias Powalowski 2014-04-25 21:14:59 +02:00
parent efa64d5ba5
commit 056cb9e74c
3 changed files with 178 additions and 10 deletions

View file

@ -192,12 +192,18 @@ _download_uefi_shell_tianocore() {
mkdir -p "${ALLINONE}/EFI/tools/" mkdir -p "${ALLINONE}/EFI/tools/"
## Download Tianocore UDK/EDK2 ShellBinPkg UEFI "Full Shell" - For UEFI Spec. >=2.3 systems ## Download Tianocore UDK/EDK2 ShellBinPkg UEFI X64 "Full Shell" - For UEFI Spec. >=2.3 systems
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/EFI/tools/shellx64_v2.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi" curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/EFI/tools/shellx64_v2.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi"
## Download Tianocore UDK/EDK2 EdkShellBinPkg UEFI "Full Shell" - For UEFI Spec. <2.3 systems ## Download Tianocore UDK/EDK2 EdkShellBinPkg UEFI X64 "Full Shell" - For UEFI Spec. <2.3 systems
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/EFI/tools/shellx64_v1.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi" curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/EFI/tools/shellx64_v1.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi"
## Download Tianocore UDK/EDK2 ShellBinPkg UEFI IA32 "Full Shell" - For UEFI Spec. >=2.3 systems
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/EFI/tools/shellia32_v2.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellBinPkg/UefiShell/Ia32/Shell.efi"
## Download Tianocore UDK/EDK2 EdkShellBinPkg UEFI IA32 "Full Shell" - For UEFI Spec. <2.3 systems
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${ALLINONE}/EFI/tools/shellia32_v1.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/Ia32/Shell_Full.efi"
} }
_prepare_uefi_gummiboot_USB_files() { _prepare_uefi_gummiboot_USB_files() {
@ -216,7 +222,7 @@ GUMEOF
title Arch Linux ${_UEFI_ARCH} Archboot title Arch Linux ${_UEFI_ARCH} Archboot
linux /boot/vmlinuz_${_UEFI_ARCH} linux /boot/vmlinuz_${_UEFI_ARCH}
initrd /boot/initramfs_${_UEFI_ARCH}.img initrd /boot/initramfs_${_UEFI_ARCH}.img
options cgroup_disable=memory audit=0 gpt loglevel=7 efi_no_storage_paranoia add_efi_memmap options cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap
GUMEOF GUMEOF
cat << GUMEOF > "${ALLINONE}/loader/entries/uefi-shell-${_UEFI_ARCH}-v2.conf" cat << GUMEOF > "${ALLINONE}/loader/entries/uefi-shell-${_UEFI_ARCH}-v2.conf"
@ -275,7 +281,7 @@ menuentry "Arch Linux ${_UEFI_ARCH} Archboot" {
icon /EFI/refind/icons/os_arch.icns icon /EFI/refind/icons/os_arch.icns
loader /boot/vmlinuz_${_UEFI_ARCH} loader /boot/vmlinuz_${_UEFI_ARCH}
initrd /boot/initramfs_${_UEFI_ARCH}.img initrd /boot/initramfs_${_UEFI_ARCH}.img
options "cgroup_disable=memory audit=0 gpt loglevel=7 efi_no_storage_paranoia add_efi_memmap" options "cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap"
ostype Linux ostype Linux
graphics off graphics off
} }
@ -295,6 +301,60 @@ EOF
} }
_prepare_uefi_IA32_GRUB_USB_files() {
mkdir -p "${ALLINONE}/EFI/boot"
echo 'configfile ${cmdpath}/grubia32.cfg' > /tmp/grub.cfg
grub-mkstandalone -d /usr/lib/grub/i386-efi/ -O i386-efi --modules="part_gpt part_msdos" --fonts="unicode" --locales="en@quot" --themes="" -o "${ALLINONE}/EFI/boot/bootia32.efi" "/boot/grub/grub.cfg=/tmp/grub.cfg" -v
cat << GRUBEOF > "${ALLINONE}/EFI/boot/grubia32.cfg"
insmod part_gpt
insmod part_msdos
insmod fat
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
insmod gfxterm
set gfxmode="1366x768x32;1280x800x32;1024x768x32;auto"
terminal_input console
terminal_output gfxterm
fi
menuentry "Arch Linux i686 Archboot on IA32 UEFI" {
set gfxpayload=keep
search --no-floppy --set=root --file /boot/vmlinuz_i686
linux /boot/vmlinuz_i686 cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap
initrd /boot/initramfs_i686.img
}
menuentry "Arch Linux x86_64 Archboot on IA32 UEFI - if x86_64 CPU - no efivar/efibootmgr support" {
set gfxpayload=keep
search --no-floppy --set=root --file /boot/vmlinuz_x86_64
linux /boot/vmlinuz_x86_64 cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap _EFI_IA32=1
initrd /boot/initramfs_x86_64.img
}
menuentry "UEFI Shell IA32 v2" {
search --no-floppy --set=root --file /EFI/tools/shellia32_v2.efi
chainloader /EFI/tools/shellia32_v2.efi
}
menuentry "UEFI Shell IA32 v1" {
search --no-floppy --set=root --file /EFI/tools/shellia32_v1.efi
chainloader /EFI/tools/shellia32_v1.efi
}
GRUBEOF
}
_prepare_packages _prepare_packages
_prepare_other_files _prepare_other_files
@ -309,6 +369,8 @@ _prepare_uefi_gummiboot_USB_files
_prepare_uefi_rEFInd_USB_files _prepare_uefi_rEFInd_USB_files
_prepare_uefi_IA32_GRUB_USB_files
unset _UEFI_ARCH unset _UEFI_ARCH
unset _SPEC_UEFI_ARCH unset _SPEC_UEFI_ARCH
@ -333,7 +395,7 @@ xorriso -as mkisofs \
-eltorito-catalog boot/syslinux/boot.cat \ -eltorito-catalog boot/syslinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \ -no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr /usr/lib/syslinux/bios/isohdpfx.bin \ -isohybrid-mbr /usr/lib/syslinux/bios/isohdpfx.bin \
--sort-weight 1 boot/syslinux/isolinux.bin \ --sort-weight 1 boot/syslinux/isolinux.bin \
-output "${IMAGENAME}.iso" "${ALLINONE}/" &> "/tmp/archboot_allinone_xorriso.log" -output "${IMAGENAME}.iso" "${ALLINONE}/" &> "/tmp/archboot_allinone_xorriso.log"
# create x86_64 iso, if not present # create x86_64 iso, if not present

View file

@ -17,6 +17,7 @@ export LANG="en_US"
[[ -z "${_UPDATE_UEFI_PREBOOTLOADER}" ]] && _UPDATE_UEFI_PREBOOTLOADER="1" [[ -z "${_UPDATE_UEFI_PREBOOTLOADER}" ]] && _UPDATE_UEFI_PREBOOTLOADER="1"
[[ -z "${_UPDATE_UEFI_LOCKDOWN_MS}" ]] && _UPDATE_UEFI_LOCKDOWN_MS="1" [[ -z "${_UPDATE_UEFI_LOCKDOWN_MS}" ]] && _UPDATE_UEFI_LOCKDOWN_MS="1"
[[ -z "${_UPDATE_UEFI_REFIND}" ]] && _UPDATE_UEFI_REFIND="1" [[ -z "${_UPDATE_UEFI_REFIND}" ]] && _UPDATE_UEFI_REFIND="1"
[[ -z "${_UPDATE_UEFI_IA32_GRUB}" ]] && _UPDATE_UEFI_IA32_GRUB="1"
[[ -z "${_UPDATE_SYSLINUX}" ]] && _UPDATE_SYSLINUX="1" [[ -z "${_UPDATE_SYSLINUX}" ]] && _UPDATE_SYSLINUX="1"
[[ -z "${_UPDATE_SYSLINUX_CONFIG}" ]] && _UPDATE_SYSLINUX_CONFIG="1" [[ -z "${_UPDATE_SYSLINUX_CONFIG}" ]] && _UPDATE_SYSLINUX_CONFIG="1"
@ -187,7 +188,7 @@ It allows you to install Arch Linux or perform system maintenance.
ENDTEXT ENDTEXT
MENU LABEL Boot Arch Linux (x86_64) MENU LABEL Boot Arch Linux (x86_64)
LINUX /boot/vmlinuz_x86_64 LINUX /boot/vmlinuz_x86_64
APPEND cgroup_disable=memory audit=0 gpt loglevel=7 rootdelay=10 APPEND cgroup_disable=memory audit=0 loglevel=7 rootdelay=10
INITRD /boot/initramfs_x86_64.img INITRD /boot/initramfs_x86_64.img
EOF EOF
@ -203,7 +204,7 @@ It allows you to install Arch Linux or perform system maintenance.
ENDTEXT ENDTEXT
MENU LABEL Boot Arch Linux (i686) MENU LABEL Boot Arch Linux (i686)
LINUX /boot/vmlinuz_i686 LINUX /boot/vmlinuz_i686
APPEND cgroup_disable=memory audit=0 gpt loglevel=7 rootdelay=10 APPEND cgroup_disable=memory audit=0 loglevel=7 rootdelay=10
INITRD /boot/initramfs_i686.img INITRD /boot/initramfs_i686.img
EOF EOF
@ -301,6 +302,48 @@ _download_uefi_shell_tianocore() {
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellx64_v1.efi.backup" || true rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellx64_v1.efi.backup" || true
echo echo
## Download Tianocore UDK/EDK2 ShellBinPkg UEFI IA32 "Full Shell" - For Spec. Ver. >=2.3 systems
mv "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi" "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi.backup" || true
echo
if [[ -e "${_ARCHBOOT_ISO_WD}/shellia32_v2.efi" ]]; then
cp -f "${_ARCHBOOT_ISO_WD}/shellia32_v2.efi" "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi"
echo
else
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellBinPkg/UefiShell/Ia32/Shell.efi" || true
echo
if [[ ! "$(file "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi" | grep 'executable')" ]]; then
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi" || true
mv "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi.backup" "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi" || true
fi
fi
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v2.efi.backup" || true
echo
## Download Tianocore UDK/EDK2 EdkShellBinPkg UEFI IA32 "Full Shell" - For Spec. Ver. <2.3 systems
mv "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi" "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi.backup" || true
echo
if [[ -e "${_ARCHBOOT_ISO_WD}/shellia32_v1.efi" ]]; then
cp -f "${_ARCHBOOT_ISO_WD}/shellia32_v1.efi" "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi"
echo
else
curl --verbose -f -C - --ftp-pasv --retry 3 --retry-delay 3 -o "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi" "https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/Ia32/Shell_Full.efi" || true
echo
if [[ ! "$(file "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi" | grep 'executable')" ]]; then
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi" || true
mv "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi.backup" "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi" || true
fi
fi
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/tools/shellia32_v1.efi.backup" || true
echo
} }
_update_uefi_gummiboot_USB_files() { _update_uefi_gummiboot_USB_files() {
@ -323,7 +366,7 @@ GUMEOF
title Arch Linux ${_UEFI_ARCH} Archboot title Arch Linux ${_UEFI_ARCH} Archboot
linux /boot/vmlinuz_${_UEFI_ARCH} linux /boot/vmlinuz_${_UEFI_ARCH}
initrd /boot/initramfs_${_UEFI_ARCH}.img initrd /boot/initramfs_${_UEFI_ARCH}.img
options cgroup_disable=memory audit=0 gpt loglevel=7 efi_no_storage_paranoia add_efi_memmap options cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap
GUMEOF GUMEOF
cat << GUMEOF > "${_ARCHBOOT_ISO_EXT_DIR}/loader/entries/uefi-shell-${_UEFI_ARCH}-v2.conf" cat << GUMEOF > "${_ARCHBOOT_ISO_EXT_DIR}/loader/entries/uefi-shell-${_UEFI_ARCH}-v2.conf"
@ -388,7 +431,7 @@ menuentry "Arch Linux ${_UEFI_ARCH} Archboot" {
icon /EFI/refind/icons/os_arch.icns icon /EFI/refind/icons/os_arch.icns
loader /boot/vmlinuz_${_UEFI_ARCH} loader /boot/vmlinuz_${_UEFI_ARCH}
initrd /boot/initramfs_${_UEFI_ARCH}.img initrd /boot/initramfs_${_UEFI_ARCH}.img
options "cgroup_disable=memory audit=0 gpt loglevel=7 efi_no_storage_paranoia add_efi_memmap" options "cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap"
ostype Linux ostype Linux
graphics off graphics off
} }
@ -409,6 +452,66 @@ EOF
} }
_update_uefi_IA32_GRUB_USB_files() {
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/boot/bootia32.efi" || true
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/EFI/boot/grubia32.cfg" || true
echo
mkdir -p "${_ARCHBOOT_ISO_EXT_DIR}/EFI/boot"
echo 'configfile ${cmdpath}/grubia32.cfg' > /tmp/grub.cfg
grub-mkstandalone -d /usr/lib/grub/i386-efi/ -O i386-efi --modules="part_gpt part_msdos" --fonts="unicode" --locales="en@quot" --themes="" -o "${_ARCHBOOT_ISO_EXT_DIR}/EFI/boot/bootia32.efi" "/boot/grub/grub.cfg=/tmp/grub.cfg" -v
echo
cat << GRUBEOF > "${_ARCHBOOT_ISO_EXT_DIR}/EFI/boot/grubia32.cfg"
insmod part_gpt
insmod part_msdos
insmod fat
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
insmod gfxterm
set gfxmode="1366x768x32;1280x800x32;1024x768x32;auto"
terminal_input console
terminal_output gfxterm
fi
menuentry "Arch Linux i686 Archboot on IA32 UEFI" {
set gfxpayload=keep
search --no-floppy --set=root --file /boot/vmlinuz_i686
linux /boot/vmlinuz_i686 cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap
initrd /boot/initramfs_i686.img
}
menuentry "Arch Linux x86_64 Archboot on IA32 UEFI - if x86_64 CPU - no efivar/efibootmgr support" {
set gfxpayload=keep
search --no-floppy --set=root --file /boot/vmlinuz_x86_64
linux /boot/vmlinuz_x86_64 cgroup_disable=memory audit=0 loglevel=7 add_efi_memmap _EFI_IA32=1
initrd /boot/initramfs_x86_64.img
}
menuentry "UEFI Shell IA32 v2" {
search --no-floppy --set=root --file /EFI/tools/shellia32_v2.efi
chainloader /EFI/tools/shellia32_v2.efi
}
menuentry "UEFI Shell IA32 v1" {
search --no-floppy --set=root --file /EFI/tools/shellia32_v1.efi
chainloader /EFI/tools/shellia32_v1.efi
}
GRUBEOF
echo
}
_remove_i686_iso_files() { _remove_i686_iso_files() {
rm -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/vmlinuz_i686" || true rm -f "${_ARCHBOOT_ISO_EXT_DIR}/boot/vmlinuz_i686" || true
@ -554,6 +657,8 @@ fi
[[ "${_UPDATE_UEFI_REFIND}" == "1" ]] && _update_uefi_rEFInd_USB_files [[ "${_UPDATE_UEFI_REFIND}" == "1" ]] && _update_uefi_rEFInd_USB_files
[[ "${_UPDATE_UEFI_IA32_GRUB}" == "1" ]] && _update_uefi_IA32_GRUB_USB_files
[[ "${_UPDATE_SYSLINUX}" == "1" ]] && _update_syslinux_iso_files [[ "${_UPDATE_SYSLINUX}" == "1" ]] && _update_syslinux_iso_files
[[ "${_UPDATE_SYSLINUX_CONFIG}" == "1" ]] && _update_syslinux_iso_config [[ "${_UPDATE_SYSLINUX_CONFIG}" == "1" ]] && _update_syslinux_iso_config
@ -608,6 +713,7 @@ unset _UPDATE_UEFI_GUMMIBOOT
unset _UPDATE_UEFI_PREBOOTLOADER unset _UPDATE_UEFI_PREBOOTLOADER
unset _UPDATE_UEFI_LOCKDOWN_MS unset _UPDATE_UEFI_LOCKDOWN_MS
unset _UPDATE_UEFI_REFIND unset _UPDATE_UEFI_REFIND
unset _UPDATE_UEFI_IA32_GRUB
unset _UPDATE_SYSLINUX unset _UPDATE_SYSLINUX
unset _UPDATE_SYSLINUX_CONFIG unset _UPDATE_SYSLINUX_CONFIG
unset _CD_UEFI_PARAMETERS unset _CD_UEFI_PARAMETERS

View file

@ -3241,7 +3241,7 @@ bootloader_kernel_parameters() {
_KERNEL_PARAMS_COMMON_UNMOD="root=${_rootpart} rootfstype=${ROOTFS} rw ${ROOTFLAGS} ${RAIDARRAYS} ${CRYPTSETUP} cgroup_disable=memory" _KERNEL_PARAMS_COMMON_UNMOD="root=${_rootpart} rootfstype=${ROOTFS} rw ${ROOTFLAGS} ${RAIDARRAYS} ${CRYPTSETUP} cgroup_disable=memory"
_KERNEL_PARAMS_BIOS_UNMOD="${_KERNEL_PARAMS_COMMON_UNMOD}" _KERNEL_PARAMS_BIOS_UNMOD="${_KERNEL_PARAMS_COMMON_UNMOD}"
_KERNEL_PARAMS_UEFI_UNMOD="${_KERNEL_PARAMS_COMMON_UNMOD} efi_no_storage_paranoia add_efi_memmap" _KERNEL_PARAMS_UEFI_UNMOD="${_KERNEL_PARAMS_COMMON_UNMOD} add_efi_memmap"
_KERNEL_PARAMS_BIOS_MOD="$(echo "${_KERNEL_PARAMS_BIOS_UNMOD}" | sed -e 's# # #g' | sed -e 's# # #g')" _KERNEL_PARAMS_BIOS_MOD="$(echo "${_KERNEL_PARAMS_BIOS_UNMOD}" | sed -e 's# # #g' | sed -e 's# # #g')"
_KERNEL_PARAMS_UEFI_MOD="$(echo "${_KERNEL_PARAMS_UEFI_UNMOD}" | sed -e 's# # #g' | sed -e 's# # #g')" _KERNEL_PARAMS_UEFI_MOD="$(echo "${_KERNEL_PARAMS_UEFI_UNMOD}" | sed -e 's# # #g' | sed -e 's# # #g')"