@@ -122,16 +122,28 @@ linux_entry ()
else
xen_rm_opts="no-real-mode edd=off"
fi
- multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
+ if [ -f \$prefix/\$grub_cpu-\$grub_platform/xen_boot.mod ]; then
+ insmod xen_boot
+ fi
+ if [ "x\$grub_xen_boot" != xy ]; then
+ xen_loader="multiboot"
+ linux_loader="module"
+ initrd_loader="module --nounzip"
+ else
+ xen_loader="xen_hypervisor"
+ linux_loader="xen_module"
+ initrd_loader="xen_module"
+ fi
+ \${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
echo '$(echo "$lmessage" | grub_quote)'
- module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
+ \${linux_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
EOF
if test -n "${initrd}" ; then
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
message="$(gettext_printf "Loading initial ramdisk ...")"
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$message" | grub_quote)'
- module --nounzip ${rel_dirname}/${initrd}
+ \${initrd_loader} ${rel_dirname}/${initrd}
EOF
fi
sed "s/^/$submenu_indentation/" << EOF