Skip to content

Instantly share code, notes, and snippets.

@pvalkone
Last active October 19, 2021 06:59
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save pvalkone/9292589 to your computer and use it in GitHub Desktop.
Save pvalkone/9292589 to your computer and use it in GitHub Desktop.
How to set up IPMI Serial-Over-LAN (SOL) on a ASRock C2550D4I motherboard and FreeBSD 10.0-RELEASE
BIOS Setup
----------
1) Boot into the BIOS setup utility (press F2 or DEL) and open Advanced > Serial Port Console Redirection.
2) Disable COM1 and EMS console redirection and enable SOL redirection.
3) Set the SOL console redirection settings as follows:
Aptio Setup Utility - Copyright (C) 2012 American Megatrends, Inc.
Advanced
/----------------------------------------------------+-------------------------\
| SOL |Emulation: ANSI: |
| Console Redirection Settings |Extended ASCII char |
| |set. VT100: ASCII char |
| Terminal Type [VT100] |set. VT100+: Extends |
| Bits per second [115200] |VT100 to support color, |
| Data Bits [8] |function keys, etc. |
| Parity [None] |VT-UTF8: Uses UTF8 |
| Stop Bits [1] |encoding to map Unicode |
| Flow Control [None] |chars onto 1 or more |
| VT-UTF8 Combo Key Sup [Enabled] |-------------------------|
| Recorder Mode [Disabled] |<>: Select Screen |
| Resolution 100x31 [Disabled] |^v: Select Item |
| Legacy OS Redirection [80x24] |Enter: Select |
| Putty KeyPad [VT100] |+/-: Change Option |
| Redirection After BIO [Always Enable] |F1: General Help |
| |F7: Discard Changes |
| |F9: Load UEFI Defaults |
| |F10: Save and Exit |
| |ESC: Exit |
\----------------------------------------------------+-------------------------/
Version 2.15.1236. Copyright (C) 2012 American Megatrends, Inc.
IPMItool Setup
--------------
1) Configure the SOL bitrates:
$ ipmitool -I lanplus -H <bmc-host> -U admin -P <password> -e \& shell
ipmitool> sol info
Set in progress : set-complete
Enabled : true
Force Encryption : false
Force Authentication : false
Privilege Level : USER
Character Accumulate Level (ms) : 50
Character Send Threshold : 100
Retry Count : 7
Retry Interval (ms) : 500
Volatile Bit Rate (kbps) : 9.6
Non-Volatile Bit Rate (kbps) : 9.6
Payload Channel : 1 (0x01)
Payload Port : 623
ipmitool> sol set non-volatile-bit-rate 115.2
ipmitool> sol set volatile-bit-rate 115.2
ipmitool> sol info
Set in progress : set-complete
Enabled : true
Force Encryption : false
Force Authentication : false
Privilege Level : USER
Character Accumulate Level (ms) : 50
Character Send Threshold : 100
Retry Count : 7
Retry Interval (ms) : 500
Volatile Bit Rate (kbps) : 115.2
Non-Volatile Bit Rate (kbps) : 115.2
Payload Channel : 1 (0x01)
Payload Port : 623
FreeBSD Setup
-------------
For further information, see: https://www.freebsd.org/doc/handbook/serialconsole-setup.html
1) Set up the boot block options:
# echo "-Dh -S115200" > /boot.config
2) Set the system bootstrap options:
# cat << EOF >> /boot/loader.conf
boot_multicons="YES"
boot_serial="YES"
console="comconsole,vidconsole"
comconsole_port="0x248"
hint.uart.0.flags="0x00"
hint.uart.2.flags="0x10"
EOF
3) (OPTIONAL) Enable a login prompt on the serial console by editing the ttyu2 line in /etc/ttys to read:
ttyu2 "/usr/libexec/getty std.115200" vt100 on secure
4) After rebooting, the check the dmesg(8) output:
# dmesg | grep uart
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
uart2: <16550 or compatible> port 0x248-0x24f irq 3 flags 0x10 on acpi0
uart2: console (115200,n,8,1)
5) Start a SOL session
$ ipmitool -I lanplus -H <bmc-host> -U admin -P <password> -e \& sol activate
[SOL Session operational. Use &? for help]
FreeBSD/amd64 (unas) (ttyu2)
login: &. [terminated ipmitool]
@aleks-mariusz
Copy link

For those who want to get this working with Linux (and don't want to wrestle with it for weeks like i have) - the key is to select the right ttyS device - i tried ttyS0 (thinking it would match up to COM1, what i thought was where the serial messages were being redirected to/from - nope.. i also tried ttyS1 as it was often referenced.. NOPE.. the key (i should have paid more attention to line 86 above), on these ASRock C2750D4I (and C2550D4I) boards, as the cosole port is 0x248 - it wasn't until i grepped dmesg for that address i discovered the right serial= kernel parameter is serial=ttyS4,11520n8 that needs to be used.. YMMV

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment