]> xenbits.xensource.com Git - people/royger/osstest.git/commitdiff
20_linux_xen: Use multiboot2 when Xen supports it
authorIan Jackson <ian.jackson@eu.citrix.com>
Thu, 17 May 2018 17:33:15 +0000 (18:33 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Wed, 23 May 2018 16:13:28 +0000 (17:13 +0100)
This is necessary for UEFI.  The patch is similar in spirit to the
upstream commit
  http://git.savannah.gnu.org/cgit/grub.git/commit/?id=b4d709b6ee789cdaf3fa7a80fd90c721a16f48c2

A backport of that commit to Debian buster was requested in
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898947
so hopefully this will not be necessary after stretch.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
overlay-jessie/etc/grub.d/20_linux_xen
overlay-stretch/etc/grub.d/20_linux_xen

index aaead1b608ff3eb81c1412ff07a3026c05b74233..885f204e39a4cade505d2415cada78732da1b5f0 100755 (executable)
@@ -118,24 +118,30 @@ linux_entry ()
   printf '%s\n' "${prepare_boot_cache}"
   xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
   lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
+  xen_loader=multiboot
+  xen_module=module
+  if grub-file --is-x86-multiboot2 $current_xen; then
+    xen_loader=multiboot2
+    xen_module=module2
+  fi
   cat << EOF
        echo    '$xmessage'
-       multiboot       ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args}
+       $xen_loader     ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args}
        echo    '$lmessage'
-       module  ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
+       $xen_module     ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
     message="$(gettext_printf "Loading initial ramdisk ...")"
     cat << EOF
        echo    '$message'
-       module  ${rel_dirname}/${initrd}
+       $xen_module     ${rel_dirname}/${initrd}
 EOF
   fi
   if test -n "${xenpolicy}" ; then
     message="$(gettext_printf "Loading XSM policy ...")"
     cat << EOF
        echo    '$message'
-       module  ${rel_dirname}/${xenpolicy}
+       $xen_module     ${rel_dirname}/${xenpolicy}
 EOF
   fi
   cat << EOF
index aaead1b608ff3eb81c1412ff07a3026c05b74233..885f204e39a4cade505d2415cada78732da1b5f0 100755 (executable)
@@ -118,24 +118,30 @@ linux_entry ()
   printf '%s\n' "${prepare_boot_cache}"
   xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
   lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
+  xen_loader=multiboot
+  xen_module=module
+  if grub-file --is-x86-multiboot2 $current_xen; then
+    xen_loader=multiboot2
+    xen_module=module2
+  fi
   cat << EOF
        echo    '$xmessage'
-       multiboot       ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args}
+       $xen_loader     ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args}
        echo    '$lmessage'
-       module  ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
+       $xen_module     ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
     message="$(gettext_printf "Loading initial ramdisk ...")"
     cat << EOF
        echo    '$message'
-       module  ${rel_dirname}/${initrd}
+       $xen_module     ${rel_dirname}/${initrd}
 EOF
   fi
   if test -n "${xenpolicy}" ; then
     message="$(gettext_printf "Loading XSM policy ...")"
     cat << EOF
        echo    '$message'
-       module  ${rel_dirname}/${xenpolicy}
+       $xen_module     ${rel_dirname}/${xenpolicy}
 EOF
   fi
   cat << EOF