Setup IPMI in FreeBSD 10

Recently, I had to try to setup IPMI in FreeBSD 10 to reproduce an issue with the BMC(baseboard management controller) on my company’s platform. I was required to run a test on stock FreeBSD (10.3 in this case). However, the documentation on getting the IPMI modules and drivers loaded and functioning, was a little lacking. For reference, this was for an Intel S2600CP motherboard.

First things first: Install openipmi and ipmitool

# pkg install ipmitool
# pkg install openipmi

Next, configure loader.conf to load the IPMI kernel module at boot:

# vi /boot/loader.conf

Add the following line:

ipmi_load=”YES”

Next, you have to add a few lines to /boot/device.hints

# vi /boot/device.hints

Add the following:

hint.ipmi.0.at=”isa”
 hint.ipmi.0.port=”0xCA2"
 hint.ipmi.0.spacing=”8"
 hint.ipmi.0.mode=”KCS”

Now reboot:

# shutdown -r now

When your host comes back up, you can verify that the kernel module is loaded by running:

# kldstat

It should return something similar to the following text(look for ‘ipmi.ko’):

Id Refs Address Size Name
 1 12 0xffffffff80200000 17bc6a8 kernel
 2 1 0xffffffff819bd000 113b0 ipmi.ko
 3 2 0xffffffff819cf000 23d0 smbus.ko
 4 1 0xffffffff81c11000 358d ums.ko

Now try running any ipmi command:

# ipmitool lan print
 Set in Progress : Set Complete
 Auth Type Support : MD5 PASSWORD
 Auth Type Enable : Callback : MD5 PASSWORD
 : User : MD5 PASSWORD
 : Operator : MD5 PASSWORD
 : Admin : MD5 PASSWORD
 : OEM :
 IP Address Source : Static Address
 IP Address : 0.0.0.0
 Subnet Mask : 0.0.0.0
 MAC Address : 00:1e:67:53:b5:b3
 SNMP Community String : public
 IP Header : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
 BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled
 Gratituous ARP Intrvl : 0.0 seconds
 Default Gateway IP : 0.0.0.0
 Default Gateway MAC : 00:00:00:00:00:00
 Backup Gateway IP : 0.0.0.0
 Backup Gateway MAC : 00:00:00:00:00:00
 802.1q VLAN ID : Disabled
 802.1q VLAN Priority : 0
 RMCP+ Cipher Suites : 0,1,2,3,4,6,7,8,9,11,12,13,15,16,17,18
 Cipher Suite Priv Max : caaaaaaaaaaaaaa
 : X=Cipher Suite Unused
 : c=CALLBACK
 : u=USER
 : o=OPERATOR
 : a=ADMIN
 : O=OEM
 Bad Password Threshold : Not Available

Boom.