IPMI serial console

Jeremy Chadwick jdc at koitsu.org
Fri Feb 22 04:29:09 UTC 2013


On Fri, Feb 22, 2013 at 02:22:52PM +1030, Daniel O'Connor wrote:
> On 22/02/2013, at 12:02, Jeremy Chadwick <jdc at koitsu.org> wrote:
> >> Hmm I tried putting '-S 115200' in /boot.config and it broke - the boot process didn't run the loader (or kernel).
> > 
> > I'll talk a bit about this -- again, sorry for the verbosity.  I'll
> > explain what I've historically used/done, then speculate a bit about
> > your IPMI stuff:
> > 
> > For me, on systems without IPMI, all I had to do was this (and nothing
> > else):
> > 
> > * Put the following in /boot.config:
> > 
> > -S115200 -Dh
> 
> This breaks the boot for me, boot.config has to contain more than just
> flags it seems. In any case I believe setting boot_multicons and
> boot_serial is the same as -Dh. Not sure about the baud rate though.

Then someone broke something (parser or something else).  This has
always, *always* worked (just flags).  The last time I verified it was
with the release of 9.0-RELEASE.  I do have a system I could test this
on, but I'd need to find a null modem cable first.

I have seen some MFCs that touch those bits in the bootloader, but from
my memory it didn't touch anything other than supporting /boot/config as
an alternate location to the classic /boot.config file.  I would be very
surprised if this broke it.

I can assure you that those were the only flags that were needed, and in
exactly that syntax.  Even the Handbook has this in it, as well as
boot(8).

I believe your explanation of boot_multicons and boot_serial are correct
and do correlate with -D and -h.  I could look at the bootstrap code to
verify.  The options are described in loader(8) but not loader.conf(5).

The drawback to using the /boot/loader.conf variables is that you won't
get boot2 output because loader is what reads /boot/loader.conf, not
boot2.  Thus you lose the ability to deal with the system via serial at
the boot2 stage.  For me, this has always been a deal-breaker.  This is
why I always advocate /boot.config.  (Note to readers: if I'm wrong
about this, please correct me, and point me to the relevant code)

> <snip>
> >  situation may be different because you have 3 serial ports (2
> > classic DB9 ports or headers, and one "fake" via IPMI), so you may need
> > to rely entirely on /boot/loader.conf to accomplish use of the IPMI one,
> > unless you wanted to set BOOT_COMCONSOLE_PORT.
> 
> OK, I made some more progress, I rebuilt the /usr/src/sys/boot with
> BOOT_COMCONSOLE_SPEED=115200  BOOT_COMCONSOLE_PORT=0x3e8 and now the
> loader talks to me without VGA to serial redirection.

Huzzah!  Do you get output from the kernel now, or still just bootstraps
and loader, then silence until getty runs?

> > exactly why many motherboard vendors that do IPMI now offer a
> > *physically separate NIC/RJ45 port* for it, rather than "piggybacking":
> > the latter caused so much pain/anger that it wasn't worth it.
> 
> I assumed that the separate NIC was to avoid this problem, however I
> have since found that the default on the SM boards I looked at is to
> use the dedicated port otherwise share(!). So the worst of both
> worlds, hooray!

Depends on the board and the IPMI integration.  Most of the newer boards
(past 3-4 years) I've seen have a dedicated LAN port on their IPMI
add-on board; e.g. a dual-NIC motherboard has 2 NICs, then there's a 3rd
NIC on the IPMI card/port.  I have seen the shared ones though, and
that's where the ASF stuff comes into play (ugh ugh ugh).  I've always
avoided all the boards that have "on-board" IPMI of any sort.

-- 
| Jeremy Chadwick                                   jdc at koitsu.org |
| UNIX Systems Administrator                http://jdc.koitsu.org/ |
| Mountain View, CA, US                                            |
| Making life hard for others since 1977.             PGP 4BD6C0CB |


More information about the freebsd-stable mailing list