On Mon, Apr 2, 2012 at 05:07, Gerardo Exequiel Pozzi <[email protected]> wrote: > This only works via EFI shell because we need to pass boot params to kernel. > > An aditional EFI shell is provided with an startup script for automatic > booting. > > Signed-off-by: Gerardo Exequiel Pozzi <[email protected]> > --- > README | 3 +++ > configs/releng/build.sh | 24 ++++++++++++++++++++++++ > 2 files changed, 27 insertions(+) > > diff --git a/README b/README > index 57c87e3..711e51d 100644 > --- a/README > +++ b/README > @@ -153,6 +153,9 @@ if nothing is specified on command line. > + squashfs-tools for mksquashfs > + libisoburn for xorriso > > +** For configs/releng build.sh needs theses packages (build host): > + + dosfstools for mkfs.vfat > + > ** For these hooks needs these packages (on target root-image) > * archiso > + (none) > diff --git a/configs/releng/build.sh b/configs/releng/build.sh > index 2faf210..c041953 100755 > --- a/configs/releng/build.sh > +++ b/configs/releng/build.sh > @@ -58,6 +58,29 @@ make_boot() { > fi > } > > +# Prepare EFI "El Torito" boot image (using Linux >= 3.3 EFI boot stub) > +make_boot_efi() { > + 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 > + mkfs.vfat ${work_dir}/iso/EFI/archiso/efiboot.img > + mkdir -p ${work_dir}/efiboot > + mount ${work_dir}/iso/EFI/archiso/efiboot.img ${work_dir}/efiboot > + mkdir -p ${work_dir}/efiboot/EFI/archiso > + 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 > + # Always provide an EFI shell for systems without it (most real > hardware for home-end-users?). > + mkdir -p ${work_dir}/efiboot/EFI/boot > + wget -O ${work_dir}/efiboot/EFI/boot/bootx64.efi > https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi
You need to use https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi as ShellBinPkg shell will work only in 2.2+ systems (most of the Arch Lenovo UEFI users reported ShellBinPkg Shell.efi as not working. More info at http://sourceforge.net/mailarchive/message.php?msg_id=28690732 . > + # Added an EFI shell script for automatic boot if ESC-key is not > pressed. > + echo "\EFI\archiso\vmlinuz.efi initrd=\EFI\archiso\archiso.img > archisolabel=${iso_label}" > ${work_dir}/efiboot/EFI/boot/startup.nsh Are you sure this will work without cd'ing into fso: first? Did you test this in real hardware like ENV (like DUET http://www.rodsbooks.com/bios2uefi/index.html) > + umount ${work_dir}/efiboot > + fi > + : > ${work_dir}/build.${FUNCNAME} > + fi > +} > + > # Prepare /${install_dir}/boot/syslinux > make_syslinux() { > if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then > @@ -259,6 +282,7 @@ make_common_single() { > make_packages > make_setup_mkinitcpio > make_boot > + make_boot_efi > make_syslinux > make_isolinux > make_customize_root_image > -- > 1.7.9.5 >
