sub setup_netboot_di_uboot ($$$$$;%) { return &setup_netboot_di_bios; }
sub setup_netboot_local_uboot ($) { return &setup_netboot_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 $img=$ho->{Tftp}{Path}.'/'.hostnamepath($ho).'/pxe.img';
-
- logm("Copy $grub => $img");
- copy($grub, $img) or die "Copy $grub to $img failed: $!";
-
- logm("grub_efi bootcfg into $f");
- file_link_contents("$ho->{Tftp}{Path}$ho->{Tftp}{TmpDir}$f",
- $bootfile, hostnamepath($ho)."-pxegrub.cfg");
-}
-
# UEFI systems netboot using grub.efi
sub setup_netboot_di_uefi ($$$$$;%) {
my ($ho,$kern,$initrd,$dicmd,$hocmd,%xopts) = @_;
- setup_grub_efi_bootcfg($ho, <<END);
+ setup_netboot_bootcfg($ho, <<END);
set default=0
set timeout=5
menuentry 'overwrite' {
i386 IA32);
die "EFI arch" unless $efi_archs{ $r{arch} };
my $efi = $efi_archs{ $r{arch} };
- setup_grub_efi_bootcfg($ho, <<END);
+ setup_netboot_bootcfg($ho, <<END);
set default=0
set timeout=5
menuentry 'local' {
# ./mg-netgrub-loader-update jessie
#
# Requires grub-mkimage (Debian package: grub-common)
+#
+# Creates $c{TftpPath}/$c{TftpGrubBase}/YYYY-MM-DD/grub/*.efi
+# which expect to load .../YYYY-MM-DD/grub/grub.cfg
+# which in turn loads .../Netgrub.cfg/EE:EE:EE:EE:EE:EE\b
+# (where EE:EE:EE:EE:EE:EE is the MAC address)
+# (or whatever else is specified in TftpNetGrubTemplates).
# This is part of "osstest", an automated testing framework for Xen.
# Copyright (C) 2015 Citrix Inc.
grubpfx=$grubbase/$date/grub
+grubcfg=$(perl -e '
+ use Osstest;
+ use Osstest::TestSupport;
+ readglobalconfig;
+ my $k = qw(TftpNetGrubTemplatesReal);
+ my $file = subst_netboot_template $c{$k},
+ { ether => qw(${net_default_mac}) },
+ $k;
+ print $file, "\n" or die $!;
+')
+
mkdir -p $dstroot
cd $dstroot
mkdir -p $dst