Port-i386 archive

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

serial console device, and installboot vs. /boot.cfg



Scenario: configuring NetBSD 9.3 serial console on a 32-bit ITX PC.

I'm returning to this from SPARC (and DEC and SGI) where serial console
natively "just worked", so it's a bit of new territory for me.

I have a working config now, but I'm not sure if I'm doing this the
"right way", and have some questions in any case.

The recipe I've pieced together from man pages and mailing lists:

raptor# installboot -v -e /dev/wd0a
File system:         /dev/rwd0a
Boot options:        timeout 5, flags 0, speed 115200, ioaddr 0, console auto

raptor# dmesg | grep console
[     1.019942] com0: console

raptor# diff /etc/ttys /etc/ttys.dist
9,12c9,10
< #console      "/usr/libexec/getty Pc"         wsvt25  off secure
< #constty      "/usr/libexec/getty Pc"         wsvt25  on secure
< console       "/usr/libexec/getty std.115200" wsvt25  off secure
< constty       "/usr/libexec/getty std.115200" wsvt25  on secure
---
> console       "/usr/libexec/getty Pc"         wsvt25  off secure
> constty       "/usr/libexec/getty Pc"         wsvt25  on secure

No changes to /boot.cfg (more on that later). This config works as I
want -- on serial console I can interact with loader, boot messages show
up there, getty gives a login: prompt, I can login there and use the
shell etc. From that standpoint it's all good.  :-)

Pc keyboard is on ttyE1 now with this config.

Some things I still wonder about:

0) is this setup for i386/amd64 serial console documented somewhere?
   I checked The NetBSD Guide a little, but didn't find much about it.
   I realize I could have chosen serial during install, but wasn't sure
   if/when I'd be doing this, so I punted to VGA+keyboard.  Plus I'd
   simply like to understand how it works and how to configure serial
   console properly afterwards if desired.

1) it seems like the main (only?) way to enable serial console support
   is by updating boot blocks config via installboot, is that correct?

   I was hoping it wasn't strictly required, since console(4) says:
     "As of NetBSD 1.5, the consdev bootblock command allows changing
     the console device on-the-fly."
   which I (naively) interpretted as: configure /boot.cfg with consdev,
   use default boot blocks, and carry on. But that seems to not work as
   I hoped.

2) before redoing installboot, I tried several /boot.cfg settings, e.g.

   menu=Boot serial cons:consdev com0,115200;rndseed /var/db/entropy-file;boot

   this didn't seem to matter without serial boot blocks, and after
   installing serial boot blocks, my /boot.cfg additions seemed to be
   a no-op, i.e. the default entry worked with serial console anyway:

   menu=Boot normally:rndseed /var/db/entropy-file;boot

   So aside from menus and banners and so on, it seems like /boot.cfg
   isn't affecting this config, regardless of consdev et al or not.

3) I don't understand the intended usage for console vs. constty in
   /etc/ttys; I separately tried both with serial console, both seemd
   functional; I settled on constty since the default /etc/ttys has that
   set on and console is set off.

4) what is "-o console=auto" intended to do with installboot? I tried
   both com0 and auto and both seemed functional. installboot(8) almost
   makes me think auto could somehow make it easier to switch between
   serial and keyboard consoles, but I don't see how at the moment.

5) reading boot_console(8), e.g. if I build a loader with options:
     SUPPORT_SERIAL=CONSDEV_COM0  (or CONSDEV_AUTO ?)
     DIRECT_SERIAL
     CONSPEED=115200
   would this allow serial console using generic boot blocks without
   console settings?  Possibly with configurable behavior in /boot.cfg ?
   Or are serial boot blocks configuration required in any case?

Overall, the ideal config for me would be the ability to use either
serial or keyboard as system console, preferably with minimal changes,
and without needing to change config files or boot blocks in order to
switch back and forth. Adding menu options to /boot.cfg would be fine,
maybe even preferable. That said, what I have works, and I'm not unhappy
with it as-is.

My next move is to repeat these experiments with NetBSD 10, fyi. Is there
any reason to expect different results?

Thanks for reading, this ended up being longer than I planned.  :-)

Cheers,
sr.


Home | Main Index | Thread Index | Old Index