IPMI – A Gentle Introduction with OpenIPMI

IPMI ? A Gentle Introduction with OpenIPMI

Corey Minyard Montavista Software February 10, 2006

2

Preface

This document describes IPMI in great detail; how it works and what it does and does not do. It starts from the basics and moves into details. If you've heard about IPMI and want to find out more, this is the document for you. If you know something about IPMI but wish to find out more, you can gloss over the introductory text and dive more into the details.

This document also describes OpenIPMI and how to use that library. A basic understanding of IPMI is required to use OpenIPMI. However, OpenIPMI hides the details of IPMI like messages and data formats; if you do not care about those things you can skip those sections.

IPMI stands for Intelligent Platform Management Interface. Not a great name, but not too bad. It is intelligent (in a manner of speaking, anyway) because it requires a processor besides the main processor that is always on and maintaining the system. In most systems with IPMI, you can monitor and maintain the system even when the main processor is turned off (though the system must generally be plugged in).

Platform means that IPMI deals with the platform, not the software running on the platform. Software management is mostly out of the scope of IPMI

Management Interface means that the management system uses IPMI to talk to the system to monitor and perform maintenance on the platform. IPMI is mostly about monitoring, though it does have a few minor management functions. However, many companies and organizations have built more extensive management control using OEM extensions to IPMI.

The IPMI specification[2], of course, has the details, but they can be obscure. This document hopefully provides an easier to understand introduction to IPMI.

i

ii

PREFACE

Contents

Preface

i

Acronyms

ix

1 Management, Systems, and IPMI

1

1.1 IPMI Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 System Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 OpenIPMI

9

2.1 The User View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 OpenIPMI Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Event-Driven Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.2 The OS Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.3 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 Locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.5 OpenIPMI Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.6 Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3 OpenIPMI Include Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.1 Files the normal user deals with . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.2 Files dealing with messaging interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.3 File for system configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.4 Semi-internal includes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.4 Starting Up OpenIPMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5 Creating OpenIPMI Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5.1 Domain Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5.2 Domain Fully Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.5.3 Domain Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 IPMI Interfaces

27

3.1 OpenIPMI Generic Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2 System Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2.1 Server Management Interface Chip (SMIC) . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2.2 Keyboard Style Controller (KCS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2.3 Block Transfer (BT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

iii

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download