[arch-releng] [PATCH]{RFC]Change from UEFI Shell to gummiboot-efi-x86_64 for booting
Hi, In some UEFI systems, startup.nsh does not start and the boot stops at Shell prompt without giving any indication of any error whatsoever. I think instead of relying on UEFI Shell, we should use a proper, simple UEFI boot manager to load EFISTUB kernel in archiso. So here is a patch replacing UEFI Shell as the primary boot pathway to gummiboot. I have renamed the UEFI Shell binaries and archiso now includes both v1 and v2 shell binaries, accessible via gummiboot menu. Some options present in shell v2 is not present in v1, but v1 works in all firmwares while v2 works only in >=2.3 (spec. version) firmwares. I have attached the patch. For this support, gummiboot-efi-x86_64 https://aur.archlinux.org/packages.php?ID=62791 should be moved to [extra] or [core] repo. Please give your comments. Regards. Keshav
On Sat, Sep 15, 2012 at 09:10:53PM +0530, Keshav P R wrote:
It'd be nice if you could send your patches inline in the future, using git-send-email.
On 09/15/2012 12:40 PM, Keshav P R wrote:
+1 from me -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 09/15/2012 12:40 PM, Keshav P R wrote:
Do you ask to Tobias to, build it and put in repos like refind? -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 09/15/2012 12:40 PM, Keshav P R wrote:
I will push this in ~ 8 hours. If you have a new version, please resend ;) Thanks. -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 09/19/2012 12:19 PM, Gerardo Exequiel Pozzi wrote:
I will wait until (FS#31609 - [gummiboot-efi-x86_64] Package is ugly) closed, maybe some rework is needed. -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 09/15/2012 12:40 PM, Keshav P R wrote:
reviewing a more in deep the patch... (next time please attach inline...) + mkdir -p ${work_dir}/iso/loader/entries and etc...can not be in ${work_dir}/iso/EFI/loader ? I want to avoid multiple directories on the root. + cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/shellx64_v1.efi + + # There are plans to support command line options via a config file (not yet in linux-3.3) such line empty contains spaces, also here... + #echo "archisobasedir=${install_dir} archisolabel=${iso_label} initrd=\\EFI\\boot\\archiso.img" > ${work_dir}/efiboot/EFI/boot/linux.conf + umount ${work_dir}/efiboot + # There are plans to support command line options via a config file (not yet in linux-3.3) and related lines, they are "obsolete" in favor of gummiboot :) you can split this function make_boot_efi() in two, one for efiboot.img and other for /EFI make_boot_efi() -> steps to build /EFI directory, for usbboot or EFI firmwares that understands iso9660 filesystem. make_boot_efiboot() -> steps to build efiboot.img for "El Torito". -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 09/20/2012 11:28 PM, Gerardo Exequiel Pozzi wrote:
uggg, no is not possible, it looks at fixed location [#1] [#1] http://cgit.freedesktop.org/gummiboot/tree/gummiboot.c#n1168
done ;) diff --git a/configs/releng/build.sh b/configs/releng/build.sh index df089d4..f7365a7 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -65,19 +65,17 @@ make_boot() { fi } -# Prepare EFI "El Torito" boot image (using Linux >= 3.3 EFI boot stub) -make_boot_efi() { +make_efi() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then if [[ ${arch} == "x86_64" ]]; then - ## Start - UEFI USB mkdir -p ${work_dir}/iso/EFI/boot cp ${work_dir}/root-image/boot/efi/EFI/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi mkdir -p ${work_dir}/iso/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/loader.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/uefi-shell-v2-x86_64.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/uefi-shell-v1-x86_64.conf + cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/ sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/loader/entries/archiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/archiso-x86_64.conf @@ -87,9 +85,14 @@ make_boot_efi() { # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) wget -O ${work_dir}/iso/EFI/shellx64_v1.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/Full... - ## End - UEFI USB + fi + : > ${work_dir}/build.${FUNCNAME} + fi +} - ## Start - UEFI CD +make_efiboot() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + if [[ ${arch} == "x86_64" ]]; then mkdir -p ${work_dir}/iso/EFI/archiso dd of=${work_dir}/iso/EFI/archiso/efiboot.img bs=1 seek=20M count=0 @@ -106,24 +109,18 @@ make_boot_efi() { cp ${work_dir}/root-image/boot/efi/EFI/gummiboot/gummibootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi mkdir -p ${work_dir}/efiboot/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/loader.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf + cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/ sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/loader/entries/archiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/archiso-x86_64.conf - cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/shellx64_v2.efi - cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/shellx64_v1.efi - - # There are plans to support command line options via a config file (not yet in linux-3.3) - #cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/boot/bootx64.efi - #cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/boot/archiso.img - #echo "archisobasedir=${install_dir} archisolabel=${iso_label} initrd=\\EFI\\boot\\archiso.img" > ${work_dir}/efiboot/EFI/boot/linux.conf - + cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ + cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ + umount ${work_dir}/efiboot - ## End - UEFI CD fi : > ${work_dir}/build.${FUNCNAME} fi @@ -293,7 +290,8 @@ make_common_single() { make_packages make_setup_mkinitcpio make_boot - make_boot_efi + make_efi + make_efiboot make_syslinux make_isolinux make_customize_root_image -- 1.7.12.1 -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 09/15/2012 12:40 PM, Keshav P R wrote:
- cp ${work_dir}/root-image/boot/efi/EFI/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi If there are no issues open issues in our bugtracker I will merge tomorrow ;) -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
From: Keshav P R <the.ridikulus.rat@gmail.com> Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- configs/releng/build.sh | 55 +++++++++++++++------- .../efiboot/loader/entries/archiso-x86_64-cd.conf | 4 ++ .../efiboot/loader/entries/archiso-x86_64-usb.conf | 4 ++ .../loader/entries/uefi-shell-v1-x86_64.conf | 2 + .../loader/entries/uefi-shell-v2-x86_64.conf | 2 + configs/releng/efiboot/loader/loader.conf | 2 + configs/releng/packages.x86_64 | 1 + 7 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf create mode 100644 configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf create mode 100644 configs/releng/efiboot/loader/entries/uefi-shell-v1-x86_64.conf create mode 100644 configs/releng/efiboot/loader/entries/uefi-shell-v2-x86_64.conf create mode 100644 configs/releng/efiboot/loader/loader.conf diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 63cbad0..0f2ebfb 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -69,6 +69,28 @@ make_boot() { make_boot_efi() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then if [[ ${arch} == "x86_64" ]]; then + ## Start - UEFI USB + + mkdir -p ${work_dir}/iso/EFI/boot + cp ${work_dir}/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi + + mkdir -p ${work_dir}/iso/loader/entries + cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/loader.conf + cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/uefi-shell-v2-x86_64.conf + cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/uefi-shell-v1-x86_64.conf + + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/loader/entries/archiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/archiso-x86_64.conf + + # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) + wget -O ${work_dir}/iso/EFI/shellx64_v2.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShe... + # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) + wget -O ${work_dir}/iso/EFI/shellx64_v1.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/Full... + + ## End - UEFI USB + + ## Start - UEFI CD + mkdir -p ${work_dir}/iso/EFI/archiso dd of=${work_dir}/iso/EFI/archiso/efiboot.img bs=1 seek=20M count=0 mkfs.vfat ${work_dir}/iso/EFI/archiso/efiboot.img @@ -80,29 +102,28 @@ make_boot_efi() { cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/archiso/vmlinuz.efi cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/archiso/archiso.img - # There are plans to support command line options via a config file (not yet in linux-3.3) - #cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/boot/bootx64.efi - #cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/boot/linux.img - #echo "archisolabel=${iso_label} initrd=\EFI\boot\linux.img" | iconv -f ascii -t ucs2 > ${work_dir}/iso/EFI/boot/linux.conf - - # For now, provide an EFI-shell until 'linux.conf' hits mainline. mkdir -p ${work_dir}/efiboot/EFI/boot - # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) - #wget -O ${work_dir}/efiboot/EFI/boot/bootx64.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShe... - # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) - wget -O ${work_dir}/efiboot/EFI/boot/bootx64.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/Full... + cp ${work_dir}/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi - # Add an EFI shell script for automatic boot if ESC-key is not pressed within 5 seconds timeout. - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/EFI/boot/startup_iso.nsh > ${work_dir}/efiboot/EFI/boot/startup.nsh - - mkdir -p ${work_dir}/iso/EFI/boot - cp ${work_dir}/efiboot/EFI/boot/bootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi + mkdir -p ${work_dir}/efiboot/loader/entries + cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/loader.conf + cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf + cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/EFI/boot/startup_usb.nsh > ${work_dir}/iso/EFI/boot/startup.nsh + s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/loader/entries/archiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/archiso-x86_64.conf + cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/shellx64_v2.efi + cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/shellx64_v1.efi + + # There are plans to support command line options via a config file (not yet in linux-3.3) + #cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/boot/bootx64.efi + #cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/boot/archiso.img + #echo "archisobasedir=${install_dir} archisolabel=${iso_label} initrd=\\EFI\\boot\\archiso.img" > ${work_dir}/efiboot/EFI/boot/linux.conf + umount ${work_dir}/efiboot + + ## End - UEFI CD fi : > ${work_dir}/build.${FUNCNAME} fi diff --git a/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf b/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf new file mode 100644 index 0000000..9892c59 --- /dev/null +++ b/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf @@ -0,0 +1,4 @@ +title Arch Linux archiso x86_64 UEFI CD +linux /EFI/archiso/vmlinuz.efi +initrd /EFI/archiso/archiso.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf b/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf new file mode 100644 index 0000000..f61c532 --- /dev/null +++ b/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf @@ -0,0 +1,4 @@ +title Arch Linux archiso x86_64 UEFI USB +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz +initrd /%INSTALL_DIR%/boot/x86_64/archiso.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/configs/releng/efiboot/loader/entries/uefi-shell-v1-x86_64.conf b/configs/releng/efiboot/loader/entries/uefi-shell-v1-x86_64.conf new file mode 100644 index 0000000..9597ff2 --- /dev/null +++ b/configs/releng/efiboot/loader/entries/uefi-shell-v1-x86_64.conf @@ -0,0 +1,2 @@ +title UEFI Shell x86_64 v1 +efi /EFI/shellx64_v1.efi diff --git a/configs/releng/efiboot/loader/entries/uefi-shell-v2-x86_64.conf b/configs/releng/efiboot/loader/entries/uefi-shell-v2-x86_64.conf new file mode 100644 index 0000000..0dde77a --- /dev/null +++ b/configs/releng/efiboot/loader/entries/uefi-shell-v2-x86_64.conf @@ -0,0 +1,2 @@ +title UEFI Shell x86_64 v2 +efi /EFI/shellx64_v2.efi diff --git a/configs/releng/efiboot/loader/loader.conf b/configs/releng/efiboot/loader/loader.conf new file mode 100644 index 0000000..62c4a83 --- /dev/null +++ b/configs/releng/efiboot/loader/loader.conf @@ -0,0 +1,2 @@ +timeout 3 +default archiso-x86_64 diff --git a/configs/releng/packages.x86_64 b/configs/releng/packages.x86_64 index fa43983..35114ae 100644 --- a/configs/releng/packages.x86_64 +++ b/configs/releng/packages.x86_64 @@ -18,6 +18,7 @@ gptfdisk grml-zsh-config grub-bios grub-efi-x86_64 +gummiboot-efi haveged hdparm ipw2100-fw -- 1.7.12.1
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- configs/releng/build.sh | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 0f2ebfb..5d573a2 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -65,19 +65,17 @@ make_boot() { fi } -# Prepare EFI "El Torito" boot image (using Linux >= 3.3 EFI boot stub) -make_boot_efi() { +make_efi() { if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then if [[ ${arch} == "x86_64" ]]; then - ## Start - UEFI USB mkdir -p ${work_dir}/iso/EFI/boot cp ${work_dir}/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi mkdir -p ${work_dir}/iso/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/loader.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/uefi-shell-v2-x86_64.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/uefi-shell-v1-x86_64.conf + cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/ sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/loader/entries/archiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/archiso-x86_64.conf @@ -87,9 +85,14 @@ make_boot_efi() { # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) wget -O ${work_dir}/iso/EFI/shellx64_v1.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/Full... - ## End - UEFI USB + fi + : > ${work_dir}/build.${FUNCNAME} + fi +} - ## Start - UEFI CD +make_efiboot() { + if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then + if [[ ${arch} == "x86_64" ]]; then mkdir -p ${work_dir}/iso/EFI/archiso dd of=${work_dir}/iso/EFI/archiso/efiboot.img bs=1 seek=20M count=0 @@ -106,24 +109,18 @@ make_boot_efi() { cp ${work_dir}/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi mkdir -p ${work_dir}/efiboot/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/loader.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf + cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/ + cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/ sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/efiboot/loader/entries/archiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/archiso-x86_64.conf - cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/shellx64_v2.efi - cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/shellx64_v1.efi - - # There are plans to support command line options via a config file (not yet in linux-3.3) - #cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/boot/bootx64.efi - #cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/boot/archiso.img - #echo "archisobasedir=${install_dir} archisolabel=${iso_label} initrd=\\EFI\\boot\\archiso.img" > ${work_dir}/efiboot/EFI/boot/linux.conf - + cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ + cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ + umount ${work_dir}/efiboot - ## End - UEFI CD fi : > ${work_dir}/build.${FUNCNAME} fi @@ -293,7 +290,8 @@ make_common_single() { make_packages make_setup_mkinitcpio make_boot - make_boot_efi + make_efi + make_efiboot make_syslinux make_isolinux make_customize_root_image -- 1.7.12.1
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 7c899f9..d0e4e21 100644 --- a/README +++ b/README @@ -213,7 +213,7 @@ Note: Using here a MBR partition mode as example, but GPT should also works # mount <DEV-TARGET-N> <MNT-TARGET-N> 4) Extract ISO image on target filesystem. -# bsdtar -x --exclude=isolinux/ --exclude=EFI/ -f <ISO-SOURCE> -C <MNT-TARGET-N> +# bsdtar -x --exclude=isolinux/ --exclude=EFI/ --exclude=loader/ -f <ISO-SOURCE> -C <MNT-TARGET-N> 5) Install syslinux bootloader on target filesystem. (See know issue (2) if using FAT) # extlinux -i <MNT-TARGET-N>/arch/boot/syslinux -- 1.7.12.1
* Increase size to a safe 31M, (currently we have 400K free since latest changes) * Also set a filesystem label, can be useful for future usage... Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- configs/releng/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 5d573a2..125be11 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -95,8 +95,8 @@ make_efiboot() { if [[ ${arch} == "x86_64" ]]; then mkdir -p ${work_dir}/iso/EFI/archiso - dd of=${work_dir}/iso/EFI/archiso/efiboot.img bs=1 seek=20M count=0 - mkfs.vfat ${work_dir}/iso/EFI/archiso/efiboot.img + truncate -s 31M ${work_dir}/iso/EFI/archiso/efiboot.img + mkfs.vfat -n ARCHISO_EFI ${work_dir}/iso/EFI/archiso/efiboot.img mkdir -p ${work_dir}/efiboot mount ${work_dir}/iso/EFI/archiso/efiboot.img ${work_dir}/efiboot -- 1.7.12.1
participants (3)
-
Dave Reisner
-
Gerardo Exequiel Pozzi
-
Keshav P R