When entering the grub2 shell during a pvgrub2 boot, there is no info about the current domU in the grubenv (set). Starting with a patch submitted by Olaf Herring I exported the xenstore cmdline only.
The env var, xen_cmdline, can then be used in the top level script used to make the pvgrub2 kernel blob. Signed-off-by: Mark Pryor <pryor...@gmail.com> --- grub-core/kern/xen/init.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c index 0559c03..2a3112d 100644 --- a/grub-core/kern/xen/init.c +++ b/grub-core/kern/xen/init.c @@ -524,6 +524,29 @@ map_all_pages (void) grub_mm_init_region ((void *) heap_start, heap_end - heap_start); } +/* + * Find all name=val pairs in the provided cmd_line and export them + * so that scripts can evaluate the variables for their own purpose. + */ +static void +export_cmdline (void) +{ + char *p; + const char *name="xen_cmdline"; + + p = grub_malloc (MAX_GUEST_CMDLINE + 1); + if (!p) + return; + + grub_memcpy (p, grub_xen_start_page_addr->cmd_line, MAX_GUEST_CMDLINE); + p[MAX_GUEST_CMDLINE] = '\0'; + + grub_env_set (name, p); + grub_env_export (name); + + grub_free (p); +} + extern char _end[]; void @@ -539,6 +562,8 @@ grub_machine_init (void) map_all_pages (); + export_cmdline (); + grub_console_init (); grub_tsc_init (); -- 2.1.4 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel