Configuring FreeBSD SoL IPMI


Aspiring Daemon

Reaction score: 142
Messages: 725

Hi all,

I´m scratching my head trying to configure Serial over LAN on a Supermicro AOC-IPMI20-E and PDSMA-E+ MB...seems I´m alone on this either:

I have read the instruction manual that came with the IPMI-card

And weeks digging through what Mr. Google can offer. Point is, what I´ve found so far seems to bee kind of loose, outdated and often contradicting to what other sources have said. It´s really hard to make any sense of it.

I´m at a point where I´ve configured IPMI to work, except for SoL. I can start a session, but it only returns jibberish. I can remotely access via Supermicro´s IPMIView-java client, ipmitool locally and remotely and perform all functions, except for SoL. It would seem that which is the most exciting is also the trickiest.

I would like to hear some real success stories here, and exactly how it was done, that would be awesome!

Most importantly, if anyone is struggling to get where I´m at now, don´t be afraid to ask.




Reaction score: 282
Messages: 2,029

Yup, SoL can be tricky. It sounds like you might have a baud mismatch. Before enabling any serial console or getty in FreeBSD, I recommend first getting text transfer working with different cu(1) settings. Attach it to your SoL redirection serial port on your server, connect to it with ipmitool, and type into each end to test.

Once you've got the correct serial settings to use, enable the console and getty with those settings.


Aspiring Daemon

Reaction score: 142
Messages: 725

Continuing my work on getting SoL to work, I´ve tried several things this weekend. As luck would have it, I´ve got two empty drives that I can play with. I took one of ´em and installed FreeBSD 8.1-Release i386 (tried amd64 as well) fresh. I wanted to rule out any possible chance that I did something to mess this up.

Following the best guide I´ve found on this:
But it has some irregularities that I wanted to air...


1. Supermicro delivers the card without firmware, if you have not flashed yet you have to boot from cd, floppy or usbstick and flash it. Make sure you have the latest firmware, it's much more stable than the firmware deliverd with the card AND it has rcmp+ encryption. (also, get the latest ipmiview software from Supermicro).

2. Enter the bios, enable serial redirection. If you want to see the FreeBSD bootblock with IPMI you can enable the Agent after boot
          Console Redirection       [Enabled]              
          Baud Rate                 [19200]                
          Agent Connect via         [NULL]                 
          Agent wait time(min)      [1]                    
          Agent after boot          [Enabled]

For me, it looked like this instead:

          Com Port Address          [On-Board COM B]
          Baud Rate                 [19200]
          Console Type              [VT100]
          Flow Control              [CTS/RTS]
          Console connection        [Direct]
          Continue C.R after POST   [On]

Almost the same but enough to to make you wonder. Flow control for instance, I know nothing about, but that option was default and I believe that to be correct. Console connection says Direct, also default and looks OK, same as NULL, I guess. The only thing I changed was VT100 that said VT100+ from the start, the BIOS looked better without the +.

3. Make sure the serial ports are setup correct.

          Onboard Serial Port 1     [3F8/IRQ4]
          Onboard Serial Port 2     [2F8/IRQ3]

4. Boot into FreeBSD and do the folowing changes:

Edit /boot/loader.conf to enable output to serial and video consoles simultaneously:

      console="comconsole vidconsole"

Edit /etc/make.conf to set the serial console speed (used when we recompile the boot blocks):


Rebuild the boot loader

# cd /usr/src/sys/boot
# make clean
# make depend
# make
# make install

Install the new boot blocks

Note: replace twed0 with the boot device node
# bsdlabel -B /dev/twed0s1
Actually didn´t work! In fact, when googling, it turns out that way to do that nowadays is:

# gpart bootcode -b /boot/boot ad0s1

Edit /etc/ttys to enable the serial console and set the console speed used:

      ttyd1 "/usr/libexec/getty std.19200" vt100 on secure

I have no ttyd´s, but I found this in /etc/ttys:

# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyu0   "/usr/libexec/getty std.9600"   dialup  off secure
ttyu1   "/usr/libexec/getty std.19200"  vt100   on  secure

And thought, "I hope that´s how it´s supposed to be."


Now, when it rebooted, after the autoboot delay in loader, it prints, like, one letter every three seconds or so. Now, I´m no expert, but I´d say that´s wrong=) It behaved in the exact same way with both i386 and amd64


I hope I´ve done everything as I´m supposed to do, but after that apparent defeat, I tried to use GRUB instead, which was a total pain in the *ss frankly, and didn´t work in the end either.

This is sooo frustrating, cause I then took the other empty drive I have, installed Debian, followed the instructions from the IPMI installation manual and had it working in 30 minutes flat.
But I don´t want effing Debian, I wan´t effing FreeBSD=)

Where am I going wrong here?