Skip to content

How to set the IMPI from Linux CLI

What is IPMI?

The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system’s CPU, firmware (BIOS or UEFI) and operating system. IPMI defines a set of interfaces used by system administrators for out-of-band management of computer systems and monitoring of their operation. For example, IPMI provides a way to manage a computer that may be powered off or otherwise unresponsive by using a network connection to the hardware rather than to an operating system or login shell. Another use case may be installing a custom operating system remotely. Installing a custom operating system may require an administrator to be physically present near the computer, insert a DVD or a USB flash drive containing the OS installer and complete the installation process using a monitor and a keyboard. Using IPMI, an administrator can mount an ISO image, simulate an installer DVD and perform the installation remotely. (source Wikipedia -> IPMI)

I have a Supermicro server with integrated IPMI and I need to use the console in order to manage my server (through the console). I have downloaded the impicfg package from supermicro public ftp.

root@ns:~/work# mkdir ipmi
root@ns:~/work# cd ipmi/
root@ns:~/work/ipmi# wget ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.28.0_build.180302.zip
--2018-07-29 00:17:46--  ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.28.0_build.180302.zip
           => ‘IPMICFG_1.28.0_build.180302.zip’
Resolving ftp.supermicro.com (ftp.supermicro.com)... 207.212.57.120
Connecting to ftp.supermicro.com (ftp.supermicro.com)|207.212.57.120|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /utility/IPMICFG ... done.
==> SIZE IPMICFG_1.28.0_build.180302.zip ... 1722771
==> PASV ... done.    ==> RETR IPMICFG_1.28.0_build.180302.zip ... done.
Length: 1722771 (1.6M) (unauthoritative)

IPMICFG_1.28.0_build.180302.zip    100%[================================>]   1.64M  3.28Mb/s    in 4.8s    

I have extracted the files from this zip archive using unzip

root@ns:~/work/ipmi# unzip IPMICFG_1.28.0_build.180302.zip
....

In the archive, you can find other tools for impi configurations from Linux, Windows and DOS. Also, on Linux directory, you can find two directors for different architectures (32bit and 64bit).

root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302# ls
DOS  IPMICFG_UserGuide.pdf  Linux  ReleaseNotes.txt  Windows
root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302# ls Linux/
32bit  64bit

I have a 64bit system, so I will use the 64bit binary.

root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302# getconf LONG_BIT
64

Running IPMICFG-Linux.x86_64 from “Linux/64bit/” without any argumens will show the arguments/help.

root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302# cd Linux/64bit/
root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302/Linux/64bit# ./IPMICFG-Linux.x86_64 
IPMICFG Version 1.28.0 (Build 180302)
Copyright 2018 Super Micro Computer, Inc.
Usage: IPMICFG params (Example: IPMICFG -m 192.168.1.123)
  -m                    Show IP and MAC.
  -m IP                 Set IP (format: ###.###.###.###).
  -a MAC                Set MAC (format: ##:##:##:##:##:##).
  -k                    Show Subnet Mask.
  -k Mask               Set Subnet Mask (format: ###.###.###.###).
  -dhcp                 Get the DHCP status.
  -dhcp on              Enable the DHCP.
  -dhcp off             Disable the DHCP.
  -g                    Show Gateway IP.
  -g IP                 Set Gateway IP (format: ###.###.###.###).
  -r                    BMC cold reset.
                        option: -d | Detected IPMI device for BMC reset.
  -garp on              Enable the Gratuitous ARP.
  -garp off             Disable the Gratuitous ARP.
  -fd                   Reset to the factory default.
                        option: -d | Detected IPMI device for BMC reset.
  -fdl                  Reset to the factory default. (Clean LAN)
                        option: -d | Detected IPMI device for BMC reset.
  -fde                  Reset to the factory default. (Clean FRU & LAN)
                        option: -d | Detected IPMI device for BMC reset.
  -ver                  Get Firmware revision.
  -vlan                 Get VLAN status.
  -vlan on    Enable the VLAN and set the VLAN tag.
                        If VLANtag is not given it uses previously saved value.
  -vlan off             Disable the VLAN.
  -selftest             Checking and reporting on the basic health of BMC.
  -raw                  Send a RAW IPMI request and print response.
                        Format: NetFn Cmd [Data1 ... DataN]
  -fru info             Show FRU inventory area Info.
  -fru list             Show all FRU values.
  -fru cthelp           Show chassis type code.
  -fru help             Show help of FRU Write.
  -fru           Show FRU field value.
  -fru    Write FRU.
  -fru 1m               Update Product-Manufacturer from DMITable to IPMI FRU.
  -fru 1p               Update Product-Product Name from DMITable to IPMI FRU.
  -fru 1s               Update Product-S/N from DMITable to IPMI FRU.
  -fru 2m               Update Board-Manufacturer from DMITable to IPMI FRU.
  -fru 2p               Update Board-Product Name from DMITable to IPMI FRU.
  -fru 2s               Update Board-S/N from DMITable to IPMI FRU.
  -fru 3s               Update Chassis-S/N from DMITable to IPMI FRU.
  -fru backup     Backup FRU to file .
  -fru restore    Restore FRU from file .
  -fru tbackup    Backup FRU to file .
  -fru trestore   Restore FRU from file .
  -fru ver      Get/Set FRU version. (v1 v2 are BCD format)
  -sel info             Show SEL info.
  -sel list             Show SEL records.
  -sel del              Delete all SEL records.
  -sel raw              Show SEL raw data.
  -sdr [full]           Show SDR records and reading.
  -sdr del      Delete SDR record.
  -sdr ver      Get/Set SDR version. (v1 v2 are BCD format)
  -nm nmsdr             Display NM SDR.
  -nm seltime           Get SEL time.
  -nm deviceid          Get ME Device ID.
  -nm reset             Reboots ME.
  -nm reset2default     Force ME reset to Default.
  -nm updatemode        Force ME to Update Mode.
  -nm selftest          Get Self Test Results.
  -nm listimagesinfo    List ME Images information.
  -nm oemgetpower       OEM Power command for ME.
  -nm oemgettemp        OEM Temp. command for ME.
  -nm pstate            Get Max allowed CPU P-State.
  -nm tstate            Get Max allowed CPU T-State.
  -nm cpumemtemp        Get CPU/Memory temperature.
  -nm hostcpudata       Get host CPU data.
  -fan                  Get Fan Mode.
  -fan            Set Fan Mode.
  -pminfo [full]        Power supply PMBus health.
  -psfruinfo            Power supply FRU health.
  -psbbpinfo            Battery backup power status.
  -autodischarge        Set auto discharge by days.
    .      
  -discharge    Manually discharge battery.
  -user list            List user privilege information.
  -user help            Show user privilege code.
  -user add    Add user.
        
             
  -user del    Delete user.
  -user level  Update user privilege.
             
  -user setpwd          Update user password.
     
  -conf upload    Upload IPMI configuration form binary file.
   

I only need to set the network and add a username.

Network configuration:

# Here is the ip address
root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302/Linux/64bit# ./IPMICFG-Linux.x86_64 -m 10.0.0.10
IP=10.0.0.10
# Here is the netmask
root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302/Linux/64bit# ./IPMICFG-Linux.x86_64 -k 255.255.255.0
Subnet Mask=255.255.255.0
# Here is the gateway
root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302/Linux/64bit# ./IPMICFG-Linux.x86_64 -g 10.0.0.1
Gateway=10.0.0.1

Adding a username with administrator privileges

root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302/Linux/64bit# ./IPMICFG-Linux.x86_64 -user help
For privilege level:
Administrator level : 4
Operator level      : 3
User level          : 2
Callback level      : 1
root@ns:~/work/ipmi/IPMICFG_1.28.0_build.180302/Linux/64bit# ./IPMICFG-Linux.x86_64 -user add 3 tex 6MNNB3R23CROHK13 4
Done.
Published inLinux