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

1 背景

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

2 具体命令如下

1
# ipmitool raw 0x2e 0xf0 0xcd 0x65 0x00 0x1e 0x01 0xff 0xff
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: 0x1E
Byte 7: EventData 1: 0x01 // you should add the actual data here:
00h No bootable media
01h Non-bootable diskette left in drive
02h PXE Server not found
03h Invalid boot sector
04h Timeout waiting for user selection of boot source
Byte 8: EventData 2: 0xFF // No meaning
Byte 9: EventData 3: 0xFF // No meaning
  • 输出
    1
    2
    # ipmitool sel list
    1 | 03/20/2021 | 00:59:55 | Boot Error #0x19 | Non-bootable disk in drive | Asserted
  • 详细信息
    1
    # ipmitool sel get 1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    SEL Record ID : 0001
    Record Type : 02
    Timestamp : 03/20/2021 00:59:55
    Generator ID : 0092
    EvM Revision : 04
    Sensor Type : Boot Error
    Sensor Number : 19
    Event Type : Sensor-specific Discrete
    Event Direction : Assertion Event
    Event Data (RAW) : 01ffff
    Event Interpretation Missing
    Description : Non-bootable disk in drive

    Sensor ID : Boot Error (0x19)
    Entity ID : 160.96
    Sensor Type (Discrete): Boot Error
    States Asserted : Boot Error
    [Non-bootable disk in drive]