Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: HOWTO updates, console selection

On Fri, Feb 26, 2021 at 03:20:55PM -0500, Greg Troxel wrote:
> (This note is amd64-centric.)
> I am simultaneously struggling with console selection issues on an apu2
> (has only serial, non-xen) and regular amd64 (no serial ports wired up,
> xen).  I find that sometimes I have console output but not input
> (console=pc, under Xen, when in ddb, USB keyboard).
> I've been rototilling the HOWTO again:
>   https://wiki.netbsd.org/ports/xen/howto/
> (I demoted the "converting from grub" section to the grub graveyard page,
> but I think nobody will be bothered.)
> More importantly, I adjusted the install section about boot configs a
> fair bit.
> As I understand things and don't understand things:
>   mbr_bootsel uses BIOS calls so it uses the BIOS's notion of console,
>   working on keyboard/vga (which I'll call normal), and also on the
>   apu2's serial port.
>   bootxx_ffsv1 (and similar) can be configured for a console.
>   \help Why doesn't bootxx use the same BIOS calls as MBR, so that
>   it doesn't need configuring?  (Or maybe it does, but the config is
>   about controlling /boot and then the kernel?)
>   \help Is bootxx config passed to /boot, and on to the kernel?
>   boot_console(8) seems to say so, but the docs for the later config
>   doesn't seem to say that normally, one wouldn't need to configure
>   booting in other than bootxx.
>   \help boot_console(8) doesn't say this, but the build lines for some
>   boot stuff make it look like params are passed:
>     -DSUPPORT_SERIAL=boot_params.bp_consdev
>   /boot can be configured in boot.cfg, by the consdev command.
>   \help How does one set baud rate and parity with consdev?  Reading the
>   boot2.c, it looks like "consdev com0:9600".

All this is about the x86 boot, I can't say for sure how it works
in details. I think setting the console in /bootxx_ is for /boot
to have a working console before reading boot.cfg.

>   \help boot.cfg(5) documents consdev but uses also console= in examples
>   without explaining.  Is the distinction that consdev controls how
>   /boot behaves and console= is a config for what is booted?

For a native boot, the /boot's notion of the console is passed
to the kernel, so the kernel knows which console to use.

For Xen (and more generally for multiboot I guess), the kernel can't access
/boot's settings, it only has the boot arguments of the command line.
So we have no choise but set the console on the command line.

>   \help Is there any difference between using consdev on a menu line and
>   placing it on a line by itself, to always be in effect?  (To be,
>   choice of console is primarily about which kind the machine has, and
>   only secondarily to use serial sometimes.)
>   \help Given that "pc" is the standard approach, why do examples give
>   console=pc?

I think it's better to be explicit. In fact I'm not sure if console=pc
is the default.

>   \help Given that xen finds a console, and provides xencons(4) to the
>   dom0, why isn't the standard approach to let the dom0 console use
>   xencons?

Because the Xen kernel handles serial input (and can pass it to the
dom0 kenrel) but not keyboards.

> And not about console:
>   Reading boot.cfg, one finds that the -s for single user belongs with
>   the load statement as it's the dom0 kernel that is to be booted single
>   user, not the xen kernel.  Is this right?


>      menu=Xen single user:load /netbsd-XEN3_DOM0.gz console=pc -s;multiboot /xen.gz dom0_mem=512M
>   \help None of the examples show rndseed.  But this issue would seem to
>   apply to dom0 just as it would apply to booting GENERIC not under Xen.
>   Is this just a case of the examples not catching up with current
>   practice?

I guess so

Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index