How to kexec into Qubes from Linux LiveCD

I was referencing that the message:

(XEN) parameter “no-real-mode” unknown!
Doesn’t mean that the no-real-mode parameter is not being used so this message can be ignored.

It’s not deprecated, these parameters are used in early boot process

Code

static bool skip_realmode(const char *cmdline)
{
return find_opt(cmdline, “no-real-mode”, false) || find_opt(cmdline, “tboot=”, true);
}

ebo->skip_realmode = skip_realmode(cmdline);

xen/xen/arch/x86/boot/cmdline.c at master · xen-project/xen · GitHub

    /*
     * Disable real mode and other legacy stuff which should not
     * be run on EFI platforms.
     */
    incb    skip_realmode(%rip)
    jmp     .Lefi_mb2_next_tag
    /*
     * Disable real mode and other legacy stuff which should not
     * be run on EFI platforms.
     */
    incb    skip_realmode(%rip)
    jmp     .Lefi_mb2_next_tag

github
/xen-project/xen/blob/master/xen/arch/x86/boot/head.S

When early boot process is finished, these parameters are no longer needed and they are ignored later:

Code

/*

  • x86 early command line parsing in xen/arch/x86/boot/cmdline.c
  • has options that are only used during the very initial boot process,
  • so they can be ignored now.
    */
    ignore_param(“real-mode”);
    ignore_param(“edd”);
    ignore_param(“edid”);

xen/xen/arch/x86/setup.c at master · xen-project/xen · GitHub

I’ve tried to kexec with edd=off but it didn’t change anything.

I want to test this on real hardware as well, but right now I don’t have the necessary hardware to get a serial output to debug Xen. I hope I’ll get my hands on it soon to check what’s going on on real hardware. For now I’ll have to tinker with qemu to try and understand what’s happening during Xen boot.

1 Like