[elbe-devel] [PATCH v2 4/4] Add support for hybrid images (UEFI+Bios)
Torben Hohn
torben.hohn at linutronix.de
Thu Mar 29 10:14:06 CEST 2018
On Thu, Mar 29, 2018 at 09:32:02AM +0200, John Ogness wrote:
> Hi Martin,
>
> On 2018-03-28, Martin Kaistra <martin.kaistra at linutronix.de> wrote:
> > This patch adds the possibility to create images which
> > can boot from UEFI as well as Bios.
> >
> > How to use:
> > You need to add the packages grub-efi-amd64-bin and grub-pc
> > and a small (1MiB should be enough) partition with <biosgrub> in
> > addition to a standard UEFI image.
>
> Could you also add an example? Maybe:
>
> examples/x86_64-pc-hdimg-grub-hybrid-stretch.xml
>
> Nobody will see the "How to use" in the git comments.
Yes please. And also some efi example.
>
> > Signed-off-by: Martin Kaistra <martin.kaistra at linutronix.de>
> > ---
> > elbepack/elbeproject.py | 6 +++++-
> > elbepack/hdimg.py | 9 ++++++---
> > 2 files changed, 11 insertions(+), 4 deletions(-)
> >
> > diff --git a/elbepack/elbeproject.py b/elbepack/elbeproject.py
> > index 047020bc..1cb22ef5 100644
> > --- a/elbepack/elbeproject.py
> > +++ b/elbepack/elbeproject.py
> > @@ -466,7 +466,11 @@ class ElbeProject (object):
> > # jessie and wheezy grubs are 2.0 but differ in behaviour
> > #
> > # We might also want support for legacy grub
> > - if self.get_rpcaptcache().is_installed('grub-pc'):
> > + if (self.get_rpcaptcache().is_installed('grub-pc') and
> > + self.get_rpcaptcache().is_installed('grub-efi-amd64-bin')):
> > + grub_version = 202
> > + grub_fw_type = "hybrid"
> > + elif self.get_rpcaptcache().is_installed('grub-pc'):
> > if self.codename == "wheezy":
> > grub_version = 199
> > else:
> > diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
> > index 2fc042d9..e0aab938 100644
> > --- a/elbepack/hdimg.py
> > +++ b/elbepack/hdimg.py
> > @@ -186,7 +186,7 @@ def size_to_int(size):
> >
> >
> > class grubinstaller_base(object):
> > - def __init__(self, outf, fw_type="bios"):
> > + def __init__(self, outf, fw_type=None):
>
> I would prefer "bios" was kept. Otherwise, we have to look through the
> code to remember what None means.
>
> > self.outf = outf
> > self.root = None
> > self.boot = None
> > @@ -260,12 +260,13 @@ class grubinstaller202(grubinstaller_base):
> > self.outf.do("chroot %s update-initramfs -u -k all" % imagemnt)
> > self.outf.do("chroot %s update-grub2" % imagemnt)
> >
> > - if self.fw_type == "efi":
> > + if self.fw_type == "efi" or self.fw_type == "hybrid":
> > self.outf.do(
> > "chroot %s grub-install --target=x86_64-efi --removable "
> > "--no-floppy /dev/poop0" %
> > (imagemnt))
> > - else:
> > + if self.fw_type == "hybrid" or self.fw_type is None:
> > + # when we are in hybrid mode, install grub also into MBR
> > self.outf.do(
> > "chroot %s grub-install --no-floppy /dev/poop0" %
> > (imagemnt))
> > @@ -526,6 +527,8 @@ def do_image_hd(outf, hd, fslabel, target, grub_version, grub_fw_type):
> > grub = grubinstaller199(outf)
> > elif grub_version == 202 and grub_fw_type == "efi":
> > grub = grubinstaller202(outf, "efi")
> > + elif grub_version == 202 and grub_fw_type == "hybrid":
> > + grub = grubinstaller202(outf, "hybrid")
> > elif grub_version == 202:
> > grub = grubinstaller202(outf)
> > else:
>
> John Ogness
>
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel
--
Mit freundlichen Grüßen
Torben Hohn
Linutronix GmbH
Standort: Bremen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99
Firmensitz / Registered Office: D-88690 Uhldingen, Bahnhofstr. 3
Registergericht / Local District Court: Amtsgericht Freiburg i. Br.; HRB
Nr. / Trade register no.: 700 806
Geschäftsführer / Managing Directors: Heinz Egger, Thomas Gleixner
Eine Bitte von uns: Sollten Sie diese E-Mail irrtümlich erhalten haben,
benachrichtigen Sie uns in diesem Falle bitte sobald wie es Ihnen
möglich ist, durch Antwort-Mail. Vielen Dank!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.linutronix.de/pipermail/elbe-devel/attachments/20180329/e50fa691/attachment.sig>
More information about the elbe-devel
mailing list