|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH OSSTEST v3 08/22] ts-host-install: Support UEFI PXE boot using grub.efi
(Wrap DiBase entry in README too for consistency)
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
v3: Reindent README (fix DiBase too for consistency)
Adjust for reordering of setup_{firmware}_pxeboot to put
{firmware} at end
Rewrap setup_grub_efi_bootcfg
Adjust for setup_pxeboot -> setup_pxeboot_di
---
Osstest/TestSupport.pm | 37 ++++++++++++++++++++++++++++++++++++-
README | 6 ++++--
2 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 512efd2..94a7c27 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -898,7 +898,7 @@ sub selecthost ($) {
$ho->{Tftp} = { };
$ho->{Tftp}{$_} = $c{"Tftp${_}_${tftpscope}"} || $c{"Tftp${_}"}
foreach qw(Path TmpDir PxeDir PxeGroup PxeTemplates PxeTemplatesReal
- DiBase);
+ DiBase GrubBase);
#----- finalise -----
@@ -2138,6 +2138,41 @@ END
sub setup_pxeboot_di_uboot ($$$$$;%) { return &setup_pxeboot_di_bios; }
sub setup_pxeboot_local_uboot ($) { return &setup_pxeboot_local_bios; }
+sub setup_grub_efi_bootcfg ($$) {
+ my ($ho, $bootfile) = @_;
+ my $f = "grub.cfg-$ho->{Ether}";
+ my $grub= $ho->{Tftp}{Path}.'/'.$ho->{Tftp}{GrubBase}.'/'.
+ $c{TftpGrubVersion}."/pxegrub-$r{arch}.efi";
+ my $pxe=$ho->{Tftp}{Path}.'/'.$ho->{Name}.'/pxe.img';
+
+ logm("Copy $grub => $pxe");
+ copy($grub, $pxe) or die "Copy $grub to $pxe failed: $!";
+
+ logm("grub_efi bootcfg into $f");
+ file_link_contents("$ho->{Tftp}{Path}$ho->{Tftp}{TmpDir}$f",
+ $bootfile, "$ho->{Name}-pxegrub.cfg");
+}
+
+# UEFI systems PXE boot using grub.efi
+sub setup_pxeboot_di_uefi ($$$$$;%) {
+ my ($ho,$kern,$initrd,$dicmd,$hocmd,%xopts) = @_;
+ setup_grub_efi_bootcfg($ho, <<END);
+set default=0
+set timeout=5
+menuentry 'overwrite' {
+ linux $kern $dicmd -- $hocmd
+ initrd $initrd
+}
+END
+}
+
+sub setup_pxeboot_local_uefi ($) {
+ my ($ho) = @_;
+ setup_grub_efi_bootcfg($ho, <<END);
+echo Should do a local boot here, somehow
+END
+}
+
sub setup_pxeboot_local ($) {
my ($ho) = @_;
my $firmware = get_host_property($ho, "firmware", "bios");
diff --git a/README b/README
index 503d15d..0f503c5 100644
--- a/README
+++ b/README
@@ -453,8 +453,10 @@ TftpFoo_<scope> and TftpFoo
PxeTemplates See TftpPxeTemplates
PxeTemplatesReal
- DiBase The path under `Path' to the root of the debian installer
- images.
+ DiBase The path under `Path' to the root of the debian
+ installer images.
+ GrubBase The path under `Path' to the root of the grub
+ EFI PXE images.
For hosts in scope "default", TftpFoo_default (if set) takes
precedence over TftpFoo. TftpFoo is used when the setting Foo is
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |