Re: [PATCH v3 28/28] docs: update Xen-on-KVM documentation

David Woodhouse
2023-10-26T09:26:07Z

[-- Attachment #1: Type: text/plain, Size: 2021 bytes --]

On Thu, 2023-10-26 at 10:26 +0200, Kevin Wolf wrote:
>
> > > > > +.. parsed-literal::
> > > > > +
> > > > > +  |qemu_system| --accel kvm,xen-version=0x40011,kernel-irqchip=split \\
> > > > > +       -chardev stdio,id=char0 -device xen-console,chardev=char0 \\
> > > > > +       -display none  -m 1G  -kernel xen -initrd bzImage \\
> > > > > +       -append "pv-shim console=xen,pv -- console=hvc0 root=/dev/xvda1" \\
> > > > > +       -drive file=${GUEST_IMAGE},if=xen
> > > > Is the space between -- and console= intentionsl?
> > > Yes, that one is correct. The -- is how you separate Xen's command line
> > > (on the left) from the guest kernel command line (on the right).
> >
> > To expand on this a bit.
> >
> > Multiboot1 supports multiple modules but only a single command line.  As
> > one of the modules passed to Xen is the dom0 kernel, we need some way to
> > pass it's command line, hence the " -- ".
>
> That's not right, even Multiboot 1 contains a 'string' field in the
> module structure that is defined to typically hold a command line. The
> exact meaning is OS dependent, so Xen could use it however it wants.
>
> In QEMU (and I believe this is the same behaviour as in GRUB),
> everything before the space in an -initrd argument is treated as a
> filename to load, everything after it is just passed as the command
> line.
>
> So it would have been entirely possible to use -initrd 'bzImage
> console=hvc0 root=/dev/xvda1' if Xen worked like that.

Xen does allow that too. I didn't realise our multiboot loader did though.

So yes, you *can* use -initrd 'bzImage root=/dev/xvda1'.

And you can even load more than one module, it seems. Separate them by
commas, so -initrd 'bzImage,initrd.img' should work.

You can even do both at the same time. If you have commas on the kernel
command line, *double* them:

-initrd 'bzImage root=/dev/xvda earlyprintk=xen,,keep,initrd.img'

I'll update the documentation accordingly.

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5965 bytes --]