Discussion:
[OmniOS-discuss] OmniOS / SuperMicro motherboard and settings for IPMI SOL
Paul Jochum
2013-11-11 15:11:27 UTC
Permalink
Hi All:

Does anyone know the magic settings (either/both in the SuperMicro
BIOS or OmniOS), to get the SOL (serial over LAN) on the IPMI on SSH to
display the console? I can see the BIOS boot messages through the
following:

ssh <ipmi address of the IPMI>
cd /system1/sol1
start

But, once I hit "GRUB loading stage 2", the window goes blank and I
can't see anything else.

My motherboard is a SuperMicro Motherboard X9SRH-7TF

thanks,
Paul
Jim Klimov
2013-11-11 17:15:08 UTC
Permalink
Post by Paul Jochum
Does anyone know the magic settings (either/both in the SuperMicro
BIOS or OmniOS), to get the SOL (serial over LAN) on the IPMI on SSH to
display the console? I can see the BIOS boot messages through the
ssh <ipmi address of the IPMI>
cd /system1/sol1
start
But, once I hit "GRUB loading stage 2", the window goes blank and I
can't see anything else.
May I presume you have serial console configured in GRUB itself and
passed to the kernel command-line? Or do you need to add something
like the below snippets to menu.lst? Also make sure that the speed
(default 9600, 115200, whatever) is matched in SOL/BIOS/GRUB/OS, or
maybe is autodetected in SOL/BIOS side and does not matter.


# Primary GRUB console is physical; allow sercon too
# (must press a key there to get grub menu)
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 console serial

title default_bootfs syscon
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive

title default_bootfs sercon
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=ttya
module$ /platform/i86pc/$ISADIR/boot_archive



Actually the "default" system (OS) console is not necessarily keyboard
and screen - this depends on "eeprom" (/grub/solaris/bootenv.rc) lines,
i.e. one can have this:

setprop console 'ttya'
#setprop console 'text'
setprop ttyb-rts-dtr-off false
setprop ttyb-ignore-cd true
setprop ttya-rts-dtr-off false
setprop ttya-ignore-cd true
setprop ttyb-mode 9600,8,n,1,-
setprop ttya-mode 9600,8,n,1,-

For alternative serial speeds (115200, etc.) you may need to update
/etc/ttydefs, adding the option to "console" and/or "contty" loops,
beside changing the other locations.

HTH,
//Jim Klimov
Michael Rasmussen
2013-11-11 17:34:44 UTC
Permalink
On Mon, 11 Nov 2013 18:15:08 +0100
Post by Jim Klimov
May I presume you have serial console configured in GRUB itself and
passed to the kernel command-line? Or do you need to add something
like the below snippets to menu.lst? Also make sure that the speed
(default 9600, 115200, whatever) is matched in SOL/BIOS/GRUB/OS, or
maybe is autodetected in SOL/BIOS side and does not matter.
Another often seen problem with IPMI is that Grub is using a wrong
resolution. Try specifying console or 640x480 as resolution.
--
Hilsen/Regards
Michael Rasmussen

Get my public GnuPG keys:
michael <at> rasmussen <dot> cc
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD3C9A00E
mir <at> datanom <dot> net
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE501F51C
mir <at> miras <dot> org
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
--------------------------------------------------------------
I own seven-eighths of all the artists in downtown Burbank!
Rob Logan
2013-11-11 18:57:05 UTC
Permalink
I've been moving away from SOL and using the BIOS "redirect console after boot" option.
This lets me plug in a crash cart (keyboard/monitor) that always seems
to be easier to find than a PC with a db9 on it or recalling the LOM/iLO's IP.
Plus some LOM don't have a buffer, so you can't see the backtrace.

Rob
Paul Jochum
2013-11-11 22:34:01 UTC
Permalink
Post by Jim Klimov
Post by Paul Jochum
Does anyone know the magic settings (either/both in the SuperMicro
BIOS or OmniOS), to get the SOL (serial over LAN) on the IPMI on SSH to
display the console? I can see the BIOS boot messages through the
ssh <ipmi address of the IPMI>
cd /system1/sol1
start
But, once I hit "GRUB loading stage 2", the window goes blank and I
can't see anything else.
May I presume you have serial console configured in GRUB itself and
passed to the kernel command-line? Or do you need to add something
like the below snippets to menu.lst? Also make sure that the speed
(default 9600, 115200, whatever) is matched in SOL/BIOS/GRUB/OS, or
maybe is autodetected in SOL/BIOS side and does not matter.
# Primary GRUB console is physical; allow sercon too
# (must press a key there to get grub menu)
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 console serial
title default_bootfs syscon
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
title default_bootfs sercon
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=ttya
module$ /platform/i86pc/$ISADIR/boot_archive
Actually the "default" system (OS) console is not necessarily keyboard
and screen - this depends on "eeprom" (/grub/solaris/bootenv.rc) lines,
setprop console 'ttya'
#setprop console 'text'
setprop ttyb-rts-dtr-off false
setprop ttyb-ignore-cd true
setprop ttya-rts-dtr-off false
setprop ttya-ignore-cd true
setprop ttyb-mode 9600,8,n,1,-
setprop ttya-mode 9600,8,n,1,-
For alternative serial speeds (115200, etc.) you may need to update
/etc/ttydefs, adding the option to "console" and/or "contty" loops,
beside changing the other locations.
HTH,
//Jim Klimov
_______________________________________________
OmniOS-discuss mailing list
http://lists.omniti.com/mailman/listinfo/omnios-discuss
Hi Jim:

Thank you for responding. In playing with our system, I now can do
the following:
1) on the SOL interface, I can see most of the POST messages
2) I see all of grub messages (and the menu)
3) Once OmniOS starts booting, I sometimes see about the first 30
characters:
"SunOS Release 5.11 Version omn"
while the real console displays the full message and the login prompt.

Any suggestions on how to get the SOL to display the full boot message
and give a login prompt? Since it got so far, I am assuming that I am
on the correct port, and the proper baud rate, etc. I have been playing
around with changing /boot/solaris/bootenv.rc and /etc/ttydefs, but
neither seem to be helping. I believe that the SuperMicro SOL is
basically taking the true console port (not a tty port) and putting it
on the LAN, and so changes to bootenv.rc and ttydefs do not affect it
(but this is just my hypothesis right now, and would love to be proven
wrong on it)

The changes I made are:

BIOS:
(I believe I turned these all back to the default settings, but am
listing them here for completeness)
Advanced -> Serial Port Console Redirection ->
Com1 and Com2 Console Redirection are Disabled
SOL Console Redirection is Enabled
Console Redirection Settings (for SOL)
Terminal Type = VT100+
Bits per second = 115200
(I have tried different rates (like
9600), but then I can't see the POST messages)
Redirection after BIOS POST = Always Enable


in OmniOS
/rpool/boot/grub
Commented out the line "splashimage /boot/grub/splash.xpm.gz"
and changed timeout to 5
otherwise, everything else is as default
(i.e. the serial and terminal lines are still commented
out, and the kernel line is still the same: "kernel$
/platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS)

/boot/solaris/bootenv.rc
(tried a lot of changes, but returned it to default since none seem
to make a difference)

/etc/ttydefs
(tried a lot of changes, but returned it to default since none seem
to make a difference)
Michael Rasmussen
2013-11-11 23:28:38 UTC
Permalink
On Mon, 11 Nov 2013 16:34:01 -0600
Post by Paul Jochum
in OmniOS
/rpool/boot/grub
Commented out the line "splashimage /boot/grub/splash.xpm.gz"
and changed timeout to 5
otherwise, everything else is as default
(i.e. the serial and terminal lines are still commented out, and the kernel line is still the same: "kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS)
/boot/solaris/bootenv.rc
(tried a lot of changes, but returned it to default since none seem to make a difference)
/etc/ttydefs
(tried a lot of changes, but returned it to default since none seem to make a difference)
Have you tried playing with console=text, console=force-text?
It seems the default to either console=graphics or console=text. Use
console=force-text to enable standard vga mode. Last time I played with
IPMI standard vga mode was the only way to see the entire boot process.
--
Hilsen/Regards
Michael Rasmussen

Get my public GnuPG keys:
michael <at> rasmussen <dot> cc
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD3C9A00E
mir <at> datanom <dot> net
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE501F51C
mir <at> miras <dot> org
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
--------------------------------------------------------------
This fortune is encrypted -- get your decoder rings ready!
Paul Jochum
2013-11-11 23:35:56 UTC
Permalink
Post by Michael Rasmussen
On Mon, 11 Nov 2013 16:34:01 -0600
Post by Paul Jochum
in OmniOS
/rpool/boot/grub
Commented out the line "splashimage /boot/grub/splash.xpm.gz"
and changed timeout to 5
otherwise, everything else is as default
(i.e. the serial and terminal lines are still commented out, and the kernel line is still the same: "kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS)
/boot/solaris/bootenv.rc
(tried a lot of changes, but returned it to default since none seem to make a difference)
/etc/ttydefs
(tried a lot of changes, but returned it to default since none seem to make a difference)
Have you tried playing with console=text, console=force-text?
It seems the default to either console=graphics or console=text. Use
console=force-text to enable standard vga mode. Last time I played with
IPMI standard vga mode was the only way to see the entire boot process.
Hi Michael:

Are you suggesting the console=force-text in the menu.lst, bootenv.rc,
or ttydefs?

thanks,
Paul
Michael Rasmussen
2013-11-11 23:42:03 UTC
Permalink
On Mon, 11 Nov 2013 17:35:56 -0600
Post by Michael Rasmussen
On Mon, 11 Nov 2013 16:34:01 -0600
Post by Paul Jochum
in OmniOS
/rpool/boot/grub
Commented out the line "splashimage /boot/grub/splash.xpm.gz"
and changed timeout to 5
otherwise, everything else is as default
(i.e. the serial and terminal lines are still commented out, and the kernel line is still the same: "kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS)
/boot/solaris/bootenv.rc
(tried a lot of changes, but returned it to default since none seem to make a difference)
/etc/ttydefs
(tried a lot of changes, but returned it to default since none seem to make a difference)
Have you tried playing with console=text, console=force-text?
It seems the default to either console=graphics or console=text. Use
console=force-text to enable standard vga mode. Last time I played with
IPMI standard vga mode was the only way to see the entire boot process.
Are you suggesting the console=force-text in the menu.lst, bootenv.rc, or ttydefs?
It has to be added to the boot line in menu.lst. Read more here:
http://docs.oracle.com/cd/E26502_01/html/E28983/glyas.html
--
Hilsen/Regards
Michael Rasmussen

Get my public GnuPG keys:
michael <at> rasmussen <dot> cc
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD3C9A00E
mir <at> datanom <dot> net
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE501F51C
mir <at> miras <dot> org
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
--------------------------------------------------------------
If you lose your temper at a newspaper columnist, he'll get rich,
or famous or both.
Jim Klimov
2013-11-12 09:35:48 UTC
Permalink
Post by Paul Jochum
Thank you for responding. In playing with our system, I now can do
1) on the SOL interface, I can see most of the POST messages
2) I see all of grub messages (and the menu)
3) Once OmniOS starts booting, I sometimes see about the first 30
"SunOS Release 5.11 Version omn"
while the real console displays the full message and the login prompt.
This did happen to me on SOL with earlier Intel MFSYS servers and
I've never worked around it well. However when we did similar setup
recently on a newer MFSYS box (maybe v2, maybe just newer firmware)
the "serial" console-over-LAN worked with no hiccups.

I've tried the old box now, with newest OI "release" - it's the same:

Press any key to continue.
Press any key to continue.
Press any key to continue.
OpenIndiana Build oi_151a8 64-bit (illumos 7256a34efe)
SunOS Release 5.11 - Copyright 1983-2010 Oracle and/or its affiliates.
All rights reserved. Use is subject to license terms.
Mo

On a side note, I'd love to find a way to report to the "screen"
console that the system is booted and login should be sought on
the serial port. Because KVMing or otherwise looking at a blank
screen makes the hand jerk involuntarily towards the reset button ;)
But things like /dev/console are only routed to the current console
(serial). I believe, virtual terminals (vt{1-6}) do have a way to
hook up the physical console, I just did not find it back then :-\
Likewise, in this aspect I miss Linux approach to /dev/console (or
some similar device?) being a sort of multiplexor that has one input
but spews over many outputs like serial, screen and UDP-sink at once...

//Jim
Jim Klimov
2013-11-12 10:06:18 UTC
Permalink
Post by Jim Klimov
Post by Paul Jochum
Thank you for responding. In playing with our system, I now can do
1) on the SOL interface, I can see most of the POST messages
2) I see all of grub messages (and the menu)
3) Once OmniOS starts booting, I sometimes see about the first 30
"SunOS Release 5.11 Version omn"
while the real console displays the full message and the login prompt.
This did happen to me on SOL with earlier Intel MFSYS servers and
I've never worked around it well. However when we did similar setup
recently on a newer MFSYS box (maybe v2, maybe just newer firmware)
the "serial" console-over-LAN worked with no hiccups.
I'd add that with Linux servers this old box was also buggy,
in i.e. "vi" it often looped output or broke sessions, while
the new box had no hiccups as I said. May be there is a problem
with flow-control or something - apparently fixed in newer
hardware or firmware - while there is lots of text output
(i.e. the GRUB menu in dumb mode), this almost predictably
breaks on certain output. So we are looking at scheduling
some downtime to update this old MFSYS chassis's firmware,
maybe you should also check with your server's vendor if there
are new firmwares, whether they announce such a fix or not

HTH,
//Jim Klimov
Paul B. Henson
2013-11-13 00:36:17 UTC
Permalink
From: Paul Jochum
Sent: Monday, November 11, 2013 2:34 PM
neither seem to be helping. I believe that the SuperMicro SOL is
basically taking the true console port (not a tty port) and putting it
on the LAN, and so changes to bootenv.rc and ttydefs do not affect it
(but this is just my hypothesis right now, and would love to be proven
wrong on it)
Well, sort of, but not exactly. When you have console redirection enabled in
the bios, it takes anything written to the standard VGA output and
duplicates it to the serial port -- but *only* for strings written with the
BIOS output functions. This covers POST, and typically boot loaders, but
once the OS starts up, it drives the vga console directly, rather than
through the BIOS, and the output only shows up on the VGA console. So, if
you want the OS to use a serial console you need to configure it in the OS.

I generally don't bother configuring grub explicitly for a serial console,
as the bios redirection typically works fine for it. You just need to be
sure to disable the splashscreen, as that switches the VGA console to
graphics mode rather than text mode which the bios can't replicate. Looks
like you already did that. As far as configuring the OS, I usually set the
boot variables with eeprom:

# eeprom console
console=ttyc
# eeprom ttyc-mode
ttyc-mode=115200,8,n,1,-

At least on my supermicro motherboard, there are two physical serial ports,
and then the virtual SOL port shows up as a third.

The last piece is to update the definition of the console in ttydefs:

console:115200 hupcl opost onlcr:115200::console

If you don't, as soon as the OS tries to start the login prompt on the
console, there's the baud rate mismatch and it dies :(.

Unless I'm misremembering/forgetting something, that's pretty much all I
needed to do to get it going on my box...
Paul Jochum
2013-11-13 01:53:12 UTC
Permalink
Thank you all, I got this to work.

Here are my notes, in case anyone else runs into this.

Motherboard: SuperMicro X9SRH-7TF
BIOS FW version: 3.00
IPMI FW version: 2.40

1) When running the sol1 interface, do not run the Java version of the
console at the same time.
2) When in doubt, reboot the IPMI. Looks like the IPMI has a tendency
to hang, and a reboot (or a "Unit Reset" from the web interface) helps
to clear things up.


1) In the BIOS (most of these are defaults, but here for completeness,
and I can cut an paste from the console now :) ):
Advanced -> Serial Port Console Redirection ->
Com1, Com2 and EMS Console Redirection should be disabled
SOL Console Redirection should be enabled
SOL Console Redirection Settings ->
Terminal Type [VT100+]
Bits per second [115200]
Data Bits [8]
Parity [None]
Stop Bits [1]
Flow Control [None]
VT-UTF8 Combo Key Support [Enabled]
Recorder Mode [Disabled]
Resolution 100x31 [Enabled]
Legacy OS Redirection Resolution [80x25]
Putty KeyPad [VT100]
Redirection After BIOS POST [Always Enable]

2) Once the system is booted, change the following files:
/<zfs root pool>/boot/grub/menu.lst
Comment out the line splashimage /boot/grub/splash.xpm.gz

/etc/ttydefs
replace the line "console:9600 hupcl opost
onlcr:9600::console"
with "console:115200 hupcl opost onlcr:115200::console"

/boot/solaris/bootenv.rc
replace the line "setprop ttyc-mode 9600,8,n,1,-"
with "setprop ttyc-mode 115200,8,n,1,-"

replace the line "setprop console text"
with "setprop console ttyc"
Post by Paul B. Henson
From: Paul Jochum
Sent: Monday, November 11, 2013 2:34 PM
neither seem to be helping. I believe that the SuperMicro SOL is
basically taking the true console port (not a tty port) and putting it
on the LAN, and so changes to bootenv.rc and ttydefs do not affect it
(but this is just my hypothesis right now, and would love to be proven
wrong on it)
Well, sort of, but not exactly. When you have console redirection enabled in
the bios, it takes anything written to the standard VGA output and
duplicates it to the serial port -- but *only* for strings written with the
BIOS output functions. This covers POST, and typically boot loaders, but
once the OS starts up, it drives the vga console directly, rather than
through the BIOS, and the output only shows up on the VGA console. So, if
you want the OS to use a serial console you need to configure it in the OS.
I generally don't bother configuring grub explicitly for a serial console,
as the bios redirection typically works fine for it. You just need to be
sure to disable the splashscreen, as that switches the VGA console to
graphics mode rather than text mode which the bios can't replicate. Looks
like you already did that. As far as configuring the OS, I usually set the
# eeprom console
console=ttyc
# eeprom ttyc-mode
ttyc-mode=115200,8,n,1,-
At least on my supermicro motherboard, there are two physical serial ports,
and then the virtual SOL port shows up as a third.
console:115200 hupcl opost onlcr:115200::console
If you don't, as soon as the OS tries to start the login prompt on the
console, there's the baud rate mismatch and it dies :(.
Unless I'm misremembering/forgetting something, that's pretty much all I
needed to do to get it going on my box...
Saso Kiselkov
2013-11-13 09:36:27 UTC
Permalink
Post by Paul Jochum
Thank you all, I got this to work.
Here are my notes, in case anyone else runs into this.
Motherboard: SuperMicro X9SRH-7TF
BIOS FW version: 3.00
IPMI FW version: 2.40
1) When running the sol1 interface, do not run the Java version of the
console at the same time.
2) When in doubt, reboot the IPMI. Looks like the IPMI has a tendency
to hang, and a reboot (or a "Unit Reset" from the web interface) helps
to clear things up.
1) In the BIOS (most of these are defaults, but here for completeness,
Advanced -> Serial Port Console Redirection ->
Com1, Com2 and EMS Console Redirection should be disabled
SOL Console Redirection should be enabled
SOL Console Redirection Settings ->
Terminal Type [VT100+]
Bits per second [115200]
Data Bits [8]
Parity [None]
Stop Bits [1]
Flow Control [None]
VT-UTF8 Combo Key Support [Enabled]
Recorder Mode [Disabled]
Resolution 100x31 [Enabled]
Legacy OS Redirection Resolution [80x25]
Putty KeyPad [VT100]
Redirection After BIOS POST [Always Enable]
/<zfs root pool>/boot/grub/menu.lst
Comment out the line splashimage /boot/grub/splash.xpm.gz
/etc/ttydefs
replace the line "console:9600 hupcl opost
onlcr:9600::console"
with "console:115200 hupcl opost onlcr:115200::console"
/boot/solaris/bootenv.rc
replace the line "setprop ttyc-mode 9600,8,n,1,-"
with "setprop ttyc-mode 115200,8,n,1,-"
replace the line "setprop console text"
with "setprop console ttyc"
Thanks for following up on this Paul, appreciate it.
--
Saso
Marion Hakanson
2013-11-12 18:13:37 UTC
Permalink
On a side note, I'd love to find a way to report to the "screen" console that
the system is booted and login should be sought on the serial port. Because
KVMing or otherwise looking at a blank screen makes the hand jerk
involuntarily towards the reset button ;) But things like /dev/console are
only routed to the current console (serial). I believe, virtual terminals
(vt{1-6}) do have a way to hook up the physical console, I just did not find
it back then :-\ Likewise, in this aspect I miss Linux approach to /dev/
console (or some similar device?) being a sort of multiplexor that has one
input but spews over many outputs like serial, screen and UDP-sink at once...
I treat this as a hardware problem, which needs a hardware solution. In
this case, I print up labels that say, "Serial Console Only" and attach
them to the front and rear of the server. If you really need the VGA
display to be active after boot, you can always enable an X11 desktop
session, but it won't connect directly to the OS /dev/console.

To elaborate, I've not found a reliable way to have GRUB activate both the
serial console and the VGA console at the same time, on all the variety of
hardware we have here. So, I think it is wise to believe this comment
in the OmniOS "menu.lst" file:

# WARNING: do not enable grub serial console when BIOS console serial
# redirection is active.

It's a little misleading, but I've found that on some hardware this means
you must leave the "terminal ..." directive commented out, but you do still
need the "serial ..." directive.

BTW, I have found Solaris-10, OpenIndiana-151a7, and OmniOS all behave
slightly differently with regard to setting up serial console (at the
OS level). For example, Solaris-10 cannot have multiple "-B blah" args
on the kernel line in menu.lst, while the Illumos-based systems can do so.
That's the main difference. All of them benefit from "-B" args, such
as "console=ttyb" (or ttya), and 'ttyb-mode="115200,8,n,1,-", and all
of them need /etc/ttydefs tweaked to match the baud rate of the BIOS
serial redirection settings. Some pay attention to "eeprom" settings
and don't need the menu.lst "-B" settings, but it doesn't hurt to set
both on all such systems.

Regards,

Marion
Loading...