IPMI 实用小代码,如何给“Boot Initiated sensor”触发一个事件

1 背景

我们知道 “Boot Initiated sensor” 在 IPMI 的环境中,是一个常见的sensor, 它记录了我们系统启动的状态,根据不同BMC 参考设计,可能会有不同的实现。 通常来说,如果是基于我们常见的PPS参考方案,我们就可以通过IPMI RAW 命令来触发的事件。下面,我们来模拟一个 “System Boot Initiated Event” 的事件

2 具体命令如下

1
# ipmitool raw 0x2e 0xf0 0xcd 0x65 0x00 0x1d 0xa2 0x01 0x02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Byte 1: NetFn: 0x2e
Byte 2: CMD: 0xf0
Byte 3: COMP_IANA_MFG_ID 0: 0xcd
Byte 4: COMP_IANA_MFG_ID 1: 0x65
Byte 5: COMP_IANA_MFG_ID 2: 0x00
Byte 6: Sensor Type: 0x1D
Byte 7: EventData 1 :0xA2 // you should add the actual data here:
00h Initiated by power up ,
01h Initiated by hard reset ,
02h Initiated by warm reset ,
03h User requested PXE boot,
04h Automatic boot to diagnostic
Byte 8: EventData 2: 0x01 // you should add the actual BIOS Major version
Byte 9: EventData 3:0x02 // you should add the actual BIOS Sub, Minor version
  • 输出
    1
    2
    # ipmitool sel list
    1 | 03/20/2021 | 00:59:43 | System Boot Initiated #0x14 | Initiated by warm reset | Asserted
  • 详细信息
    1
    # ipmitool sel get 1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SEL Record ID : 0001
    Record Type : 02
    Timestamp : 03/20/2021 00:59:43
    Generator ID : 0092
    EvM Revision : 04
    Sensor Type : System Boot Initiated
    Sensor Number : 14
    Event Type : Sensor-specific Discrete
    Event Direction : Assertion Event
    Event Data (RAW) : a20102
    Event Interpretation Missing
    Description : Initiated by warm reset