[ipxe-devel] Generating a BIOS/UEFI hybrid ISO image
Geert Stappers
stappers at stappers.nl
Tue Oct 5 15:58:56 UTC 2021
On Tue, Oct 05, 2021 at 02:18:02PM +0000, Dean Westhead wrote:
> From: "Michael Brown" <mcb30 at ipxe.org>
> Sent: Tuesday, 5 October, 2021 12:58:53
> > On 05/10/2021 09:38, Dean Westhead wrote:
> > > I may be missing something, but since the commit changed the file
> > > src/util/geniso to src/util/genfsimg, I have not been able to generate
> > > an ISO file that can be used to boot both BIOS and UEFI ... it always
> > > only boots BIOS.
> > >
> > > I admit that the changes that i was told to make to the geniso file, i
> > > cant make to genfsimg becasue it is very different and i dont want to
> > > break anything else in it !
> > >
> > > Am I doing something wrong or is there a different set of instructions
> > > to modify genfsimg to make it create this ISO correctly ?
> >
> > You no longer need to make any modifications to genfsimg: it is already
> > capable of building a combined BIOS and UEFI ISO (and can also handle
> > multiple UEFI architectures, if you want e.g. a combined ISO that can
> > handle BIOS, x86_64 UEFI, and AArch64 UEFI).
> >
> > As per "./util/genfsimg -h":
> >
> > usage: ./util/genfsimg [OPTIONS] foo.lkrn|foo.efi [bar.lkrn|bar.efi,...]
> >
> > where OPTIONS are:
> > -h show this help
> > -o FILE save image to file
> > -p PAD pad filesystem (in kB)
> > -s SCRIPT use executable script
> >
> > so you can build a combined image in two stages using e.g.
> >
> > make bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi
> >
> > ./util/genfsimg -o combined.iso \
> > bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi
> >
> > You can also use the "-s" option to specify a script that will be used
> > by platforms (without needing to build using EMBED=...). This is
> > particularly useful if you build an editable FAT filesystem image
> > instead of an ISO, using e.g.
> >
> > ./util/genfsimg -o combined.img -s myscript.ipxe \
> > bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi
> >
> > since you can then mount the FAT filesystem image and edit the script
> > (saved as "autoexec.ipxe") without needing to recompile.
> >
> > Michael
> Hi,
>
> Yes ... that is what i have been trying .... and failing ! hehe !
>
> it all "makes" without any errors and after installing the xorriso
> package the genfsimg runs without any errors too.
>
> The only problem is that the outputted combined.iso will not boot a
> Dell UEFI laptop and RUFUS only sees the ISO as BIOS only too.
Ah
> If I copy over to the src/util directory the old geniso file and add
> the rule into into the Makefile.pcbios to use it, the resultant ISO
> file works fine on both BIOS and UEFI machines.
>
> The ISO file is also about 1Mb smaller when created with the genfsimg
> than with the geniso file .... almost like it is failing to add the
> bin-x86_64-efi/ipxe.efi file.
Advice: Make it an interesting challenge
Reproduce the "problem" on qemu. AFAIK has qemu both "BIOS" and "uEFI". [0]
Then describe how others can reproduce the challenge.
In other words: Go beyond "It doesn't work on _my_ hardware!"
> Dean.
Groeten
Geert Stappers
[0] It will gain original poster a faster development cycle.
--
Silence is hard to parse
More information about the ipxe-devel
mailing list