Baseboard Management Control
August 21, 2022
Baseboard Management Controller is implemented on “enterprise” systems and along with several satellite controllers facilitates access via a platform management system. IPMI is a set of specifications for interacting with these systems. Typically the BMC provides a web interface, but there is also ipmitool which facilitates access over an ssh server running on the BMC.
There are “taps” in place to allow for serial based interaction between the BMC and the primary host metal. This facilitates a Serial over LAN (SoL) interaction that can provide console access to the BMC.
- The host BIOS needs to be configured to allow this
- The host operating system needs to be configured to allow this
The host boot sequence is visible/manipulable via SoL.
The host will display the boot sequence far more quickly via SoL than KVM.
We have observed that arrow key interaction between SoL and GRUB sends incorrect keys, be advised.
BIOS on Gigabyte {R152, S452, G242}, ASRockRack {ROMED8-2T} #
- Advanced
- Serial Port Console Redirection
- COM1/SOL
- Console Redirection: ENABLED
- Console Redirection Settings:
- Terminal Type: VT-UTF8
- Bits Per Second: 115200
- Data Bits: 8
- Parity: None
- Stop Bits: 1
- VT-UTF8 Combo Key Support: ENABLED
- Recorder Mode: DISABLED
- Resolution 100x31: ENABLED
- Putty KeyPad: LINUX
- COM1/SOL
- Serial Port Console Redirection
GRUB on Fedora Server #
vim /etc/default/grub
- Change
GRUB_TIMEOUT
to10
so that we have 10 seconds to interact with GRUB before it hands off - Remove
GRUB_TERMINAL_OUTPUT
- we will use
GRUB_TERMINAL
rather than_OUTPUT
and_INPUT
- we will use
- Add to
GRUB_CMDLINE_LINUX
beforequiet
these arguments:console=tty0 console=ttyS0,115200n8
console=tty0
: keeps our KVM interface functional, this is extremely importantconsole=ttyS0,115200n8
: informs the Kernel of COM1/SOL (ttyS0) informs grub of the COM1/SOL interface as well as another interface
- Add
GRUB_TERMINAL="console serial"
- Informs GRUB to listen to both the console (KVM) and Serial (SoL)
- Add
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
- Informs GRUB of the serial control parameters
An example GRUB should look something like this:
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-c0cb4855-b3ef-49bd-a9bd-fcc160a65dae rd.md.uuid=d4aad236:4258dbc2:31348db7:c6d40f01 rd.md.uuid=d67fb47a:8c80dce2:a171204b:3768947f rhgb console=tty0 console=ttyS0,115200n8 quiet"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
Now generate that configuration to be used during boot:
grub2-mkconfig -o /boot/grub2/grub.cfg
Interaction with BMC via ipmitool #
Most important:
ipmitool -H -U -I lanplus sol activate
This activates an SoL session. Allowing you to examine the entire boot sequence as well as interact with early boot (e.g. BIOS)
ipmitool -H -U chassis power off
This turns off the system
ipmitool -H -U chassis power cycle
This resets the system
To exit an ipmitool session hit: