freeIPMI README && issue about OpenIPMI kernel driver
http://www.gnu.org/software/freeipmi/README
FreeIPMI - Copyright (C) 2003-2013 FreeIPMI Core Team FreeIPMI
-------- FreeIPMI provides in-band and out-of-band IPMI software based on the
IPMI v1.5/2.0 specification. What is IPMI?
------------- The IPMI specification defines a set of interfaces for platform
management. It is utilized by a wide variety of vendors for system
management on motherboards. The features of IPMI that most users will
be interested in are sensor monitoring, remote power control,
serial-over-LAN (SOL), and system debugging. The FreeIPMI tools and
libraries listed below should provide users with the ability to access
and utilize these features. Getting Started with IPMI
------------------------- IPMI can be used in-band (i.e. running on a machine locally) or
out-of-band (i.e. connecting remotely). Most FreeIPMI tools can operate in-band by using one of the in-band
drivers included. These in-band drivers include a direct KCS
interface driver, a Linux SSIF driver through the SSIF device
(i.e. /dev/i2c-0), the OpenIPMI Linux kernel driver (i.e. /dev/ipmi0),
and the Sun/Solaris BMC driver (i.e. /dev/bmc). If your system
requires the use of installed drivers, those appropriate modules must
be installed ahead of time. However, most systems should
automatically load these drivers when appropriate. Under most scenarios, the FreeIPMI tools should automatically discover
which in-band interface to use and the proper settings to use. Users
may execute the tools on the command line to begin using them. Some
motherboards may require you to determine driver type, addresses,
paths, etc. on your own and pass them as command line options to the
tools. You may use ipmi-locate(8) to help determine this information.
Other tools such as dmidecode(8) may also provide this information. To use IPMI out-of-band with tools such as ipmipower(8) or
ipmi-sensors(8), the remote machine's BMC must first be configured for
out of band communication. Typically, this involves setting a
username, password, IP address, MAC address, and a few other
parameters. This can be done using the tool bmc-config(8).
Additional information on how to configure with bmc-config(8) can be
found in the bmc-config.conf(5) manpage. Some vendors may
pre-configure their motherboards with default values so that
bmc-config(8) can be used remotely to configure the machine. However,
most of the time, the BMC must be configured in-band before
out-of-band access can be allowed (for example, the correct IP address
and MAC address must be configured). In order to remotely connect to a machine, you typically must specify
the host, username, and password for the tool in order to connect.
Depending on configuration settings, a K_g key, privilege level,
authentication type, cipher suite id, or protocol version may need to
be specified. Some vendors may have not implemented IPMI properly and a workaround
must be specified into FreeIPMI to ensure the tool can execute
properly. For example, a fair number of vendors have populated their
FRU records with invalid checksums. To properly ignore these set of
checksums a 'skipchecks' workaround has been added to ipmi-fru(8).
Please see each of the tool manpages to see a list of available
workarounds. Additional information, examples, and general trouble-shooting can be
found in each of the tool manpages. General Use
----------- The primary tools that most users of FreeIPMI will be interested in
for system management are the following: Ipmi-sensors A tool to read IPMI sensor readings to aid in system monitoring. Ipmi-sel A tool to read and manage IPMI System Event Log (SEL) records to aid
in system debugging. Ipmipower A tool for remote power control. Ipmiconsole A tool for Serial-over-Lan (SOL) console access. Many other tools and libraries are listed below that cover additional
features and areas of IPMI. Additional information, examples, and general trouble-shooting can be
found in each of the tool manpages. Configuration
------------- In order to avoid typing in a long list of command line options to
specify IPMI communication requirements everytime a command is
executed (e.g. driver paths, usernames, passwords, etc.), an
alternate set of default values can be set for most FreeIPMI
tools in the FreeIPMI configuration file. See freeipmi.conf(5)
for more information. HPC Support
----------- Much of FreeIPMI was written with HPC support in mind. The
configuration tools (bmc-config(8), pef-config(8),
ipmi-sensors-config(8), and ipmi-chassis-config(8), come with file
input/output support so that configuration can be copied and verified
across nodes in a cluster. Most tools (like ipmipower(8) and
ipmi-sensors(8)) come with hostrange support so multiple hosts can be
specified on the command line at the same time and IPMI can be
executed against the hosts in parallel. See tool manpages for more
information. Also see the document freeipmi-hostrange.txt for
detailed usage and explanation. Ipmi-sensors(8) and the
libipmimonitoring(3) library support the ability to interpret sensor
readings as well as just reporting them. By mapping sensor readings
into NOMINAL, WARNING, or CRITICAL states, it makes monitoring sensors
easier across large numbers of nodes. Development
----------- For information on the libraries that can be used to program IPMI
applications with, please see, please see libfreeipmi(3),
libipmiconsole(3), libipmimonitoring(3), and libipmidetect(3). Or
see the document freeipmi-libraries.txt. Project Tools
------------- The following tools are distributed and supported by FreeIPMI. Bmc-info A tool to read information about a BMC such as device version numbers,
device support, and globally unique IDs (guids). Bmc-config A tool to configure general BMC and IPMI information. Supports
configuration of usernames, passwords, networking information,
security, Serial-over-LAN (SOL), and other core fields. Bmc-watchdog A tool/daemon to manage a BMC Watchdog. This tool is typically used
for system timeout management and automatic system restarts in the
event of a system crash. Ipmi-chassis A tool to manage/monitor a chassis, such as chassis power,
identification (i.e. LED control), and status. Ipmi-fru A tool to read field replaceable unit (FRU) information from a
motherboard/machine. Ipmi-sel A tool to read and manage IPMI System Event Log (SEL) records. SEL
records store system event information and may be useful for debugging
problems. Ipmi-sensors A tool to read IPMI sensor readings and sensor data repository (SDR)
information. Ipmipower A tool for remote power control. Ipmiconsole A tool for Serial-over-Lan (SOL) console access. Ipmi-raw A tool that provides hex input/output of IPMI commands. Ipmi-locate A tool that can probe for information about the location of a BMC
device, such as device addresses. Ipmi-chassis-config A tool to configure IPMI chassis information. Supports configuration
of boot device, power restore policy, and other chassis related
fields. Ipmi-pef-config A tool to configure Platform Event Filtering (PEF) information. Ipmi-pet A tool to parse and interpret Platform Event Traps (PET). Ipmi-sensors-config A tool to configure IPMI sensors. Supports configuration of sensor
thresholds, sensor events, and other sensor related fields. Ipmi-dcmi A tool to perform Data Center Manageability Interface (DCMI) IPMI
extension commands. Supports extensions for asset management and
power usage management. Bmc-device A tool to perform advanced BMC commands, such as resetting the BMC,
configuring ACPI, configuring SDR/SEL time, manually generating
events, re-arming sensors, and configuring manufacturer settings. Ipmiping An IPMI ping tool for debugging. Rmcpping A RMCP ping tool for debugging. Ipmi-oem An IPMI tool for OEM specific commands. Ipmidetect/Ipmidetectd A tool and daemon for IPMI node detection. Ipmiseld A daemon that regularly polls the SEL and stores the events to the
local syslog. Additional information, examples, and general trouble-shooting can be
found in each of the tool manpages. Project Libraries
----------------- The following libraries are distributed and supported by FreeIPMI. Libfreeipmi A C library that includes KCS, SSIF, OpenIPMI Linux, and Solaris BMC
drivers, IPMI 1.5 and IPMI 2.0 LAN communication interfaces, IPMI
packet building utilities, IPMI command utilities, and utilities for
reading/interpreting/managing IPMI. Libipmiconsole A library for Serial-over-Lan (SOL) console access. SOL console
access is abstracted into a file descriptor interface, so users may
read and write console data through a file descriptor. Libipmimonitoring A library for sensor monitoring that abstracts away most IPMI details. Libipmidetect A library for IPMI node detection. Help, Questions, etc.
--------------------- Please send comments, help, and questions to the freeipmi mailing
lists, freeipmi-users@gnu.org and freeipmi-devel@gnu.org. Or see
our webpage at http://www.gnu.org/software/freeipmi/. http://www.gnu.org/software/freeipmi/README.openipmi
The Linux OpenIPMI driver is often loaded via the /etc/init.d/ipmi
setup script. If your distribution/environment does not have this
script, the following script can be used to load/unload the driver. #!/bin/sh /sbin/modprobe ipmi_devintf maj=`cat /proc/devices | awk '/ipmidev/{print $1}'`
if [ -c /dev/ipmi0 ]
then
rm -f /dev/ipmi0
/bin/mknod /dev/ipmi0 c $maj 0
else
/bin/mknod /dev/ipmi0 c $maj 0
fi /sbin/modprobe ipmi_si # do stuff /sbin/rmmod ipmi_si
/sbin/rmmod ipmi_devintf
/sbin/rmmod ipmi_msghandler
http://openipmi.sourceforge.net/
OpenIPMI
OpenIPMI is an effort to create a full-function IPMI system to allow full access to all IPMI information on a server and to abstract it to a level that will make it easy to use. See the SourceForge page for the source code.
A nice overview of IPMI can be found here, if you are interested.
OpenIPMI consists of two main parts: A device driver that goes into the Linux kernel, and a user-level library that provides a higher-level abstraction of IPMI and generic services that can be used on any operation system.
IPMI Documents
A new document is being created to support OpenIPMI, it helps document a lot of IPMI proper and reduces (and hopefully eliminates) the need to look at the IPMI specification. It is still very rough and incomplete, but is probably useful in its current form. This is also included in current releases of OpenIPMI. It will be udpated as time goes by.
Linux IPMI driver
Note: If you are using RHEL3, RHEL4, or SLES9, Matt Domsch graciously maintains a web page with a tool and set of patches for keeping those releases' IPMI driver up to date.
The Open IPMI Linux device driver is designed as a full-function IPMI device driver with the following features:
- Allows multiple users.
- Allows multiple interfaces.
- Allows both kernel and userland things to use the interface.
- Fully supports the watchdog timer.
- It works like IPMI drivers are supposed to. It tracks outgoing messages and matches up their responses automatically. It automatically fetches events, received messages, etc.
- It supports interrupts (I have tested them now).
- It has backwards-compatability modules for supporting the Radisys IPMI driver and the Intel IMB driver.
- It's modular. You don't have to have the standard userland interface. You don't have to have the watchdog. Etc.
- It supports generating an event on a panic.
If you use the code as a module with high-res timers, you might need this patch because some symbols are not exported from the high-res timer code.
The releases are on the sourceforge page. Each release has a release relative to a plain kernel.org kernel (eg linux-ipmi-2.6.13-v36.1.base.diff). There are generally no diffs from previous version for the 2.6 kernel as the patches are pushed into the kernel pretty quickly. For 2.4 kernels, there are sometimes diffs from the previous version. Support has ceased for the 2.4 kernel except for serious bug fixes. The patches present are:
- linux-ipmi-<kernelversion>-<driverversion>-base.diff - The main driver changes. You need this.
- linux-ipmi-<kernelversion>-<driverversion>-emu.diff - The IMB and Radisys driver emulators. You only need this if you need the emulation code.
- linux-ipmi-<kernelversion>-<driverversion>-smb.diff - The SMBus driver, for using IPMI over an I2C bus per the IPMI 2.0 standard. To use this, you need the I2C patches, too.
- linux-i2c-<kernelversion>-<driverversion>.diff - The basic I2C changes required for the SMBus driver to work. Note that you also need driver changes for the specific I2C driver you are using.
- linux-i2c-<kernelversion>-<driverversion>-i801.diff - Driver changes for the I801 driver.
- linux-nmi-<kernelversion>-<driverversion>.diff - Changes to the i386 and x86_64 NMI infrastructure to allow NMI handlers to plug in like normal interrupts. This is only required if you need to use the IPMI NMI watchdog timeout (the pretimeout). Otherwise you don't need this.
This document describes the design. The user's guide is what comes in the kernel Documentation directory.
The OpenIPMI Library
Raw access to IPMI is rather difficult to use. Parsing SDRs, scanning for devices on the IPMB bus, scanning for events, and handling all the pieces is rather complicated. The OpenIPMI library provides a higher-level abstraction of this, the user of the OpenIPMI library deals directly with sensors and entities and does not have to worry about the lower-level details of IPMI.
Note that the OpenIPMI library is not Linux-specific. It was written with an os-layer so it could be ported to other operating systems. Of course, it works by default on Linux, but I would like to see it running on other operating systems. It includes an IPMI LAN interface, an interface for the OpenIPMI driver, but interfaces for other drivers and connections could be written.
The OpenIPMI library also includes the ipmicmd program, a small program that lets you inject and receive messages. You can register for incoming commands, set your source IPMB address, and other nifty things, too.
Someting from OpenIPMI README in its source code dirctory
Read Me
This is the OpenIPMI library, a library that makes simplifies building
complex IPMI management software. What is IPMI?
============= IPMI is a specification detailing how to detect and manage sensors in
a system. It also specifies some chassis-level thing like power control,
reset, FRU (Field Replaceable Unit) information, and watchdogs. However, IPMI has become much more than that. Vendors have added
extensions to IPMI for doing many thing, including controlling LEDs,
relays, character displays, and managing hot-swapping components. In
general, it has become the "standard" way to handle hardware
maintenance in a system. IPMI specifies a set of interconnected intelligent Management
Controllers (MCs). Each MC is a small CPU that manages a set of
sensors and/or output devices. The "main" MC is called the Baseboard
Management Controller (BMC); it provides the external interfaces into
the system. Each MC may have a set of Sensor Data Records (SDRs). An SDR details
information about a sensor. Some SDR records also have information
about entities, such as their name, the FRU information, and what
other entities they are contained in. Entities are the physical objects in the system (boards, CPUs, fans,
power supplies, etc.) A sensor is attached to the entity it monitors;
the SDR record tell what entity a sensor monitors. IPMI specifies several external interfaces to the BMC. One set is
local interfaces directly to a CPU, a local CPU connections is called
a system interface. The other is external interfaces through a LAN,
serial port, or modem. The external interfaces allow a system to be
managed even when it is turned off, since the BMC is always powered
when the system is plugged in. IPMI has a strong bent toward complete "chassis" systems, basically a
box with one main board with CPUs; a BMC, and perhaps a few satellite
MCs in things like power supplies. It is being rapidly adopted in
"shelf" systems, which has a set of slots where you can plug in
complete single-board computers. In shelf systems, the BMC becomes a
central shelf manager that manages all the boards in the shelf.
Although IPMI was not designed for this, it does a pretty good job of
extending into this architecture. What is OpenIPMI?
================= Notice that in the description above, OpenIPMI was designed to aid
building "complex IPMI management software". That's a carefully
chosen description. Most of the OpenIPMI library was designed for building complicated
systems that continuously monitor IPMI hardware. It's not for little
things that simply want to get some information, do something, and
leave (unless that information is elaborate information). OpenIPMI will connect with an IPMI controller, detect any management
controllers on the bus, get their SDRs, manage all the entities in the
system, manage the event log, and a host of other things. As you
might imagine, that is a fairly lengthy process on a complex system. OpenIPMI is also dynamic and event-driven. It will come up and start
discovering things in the managed system. As it discovers things, it
will report them to the software using it (assuming the software has
asked for this reporting). This process of discovery is never done
from OpenIPMI's point of view; things can come and go in the system
and it will report these changes as it detects them. This can be a
little confusing to people who want a static view of their system.
OpenIPMI has no static view (though it does have a current view).
When you make a connection, it will report when the connection is up;
but the system will be "empty". You have to wait for OpenIPMI to
report the things it finds. It is possible to use OpenIPMI's low-level connection code if you want
to do a direct connection to a BMC (through the LAN or system
interface). You can see the code in sample/ipmicmd.c for an example
of how to do this. Most of the other pieces of OpenIPMI are not
useful by themselves, though, because they are intrinsically tied
together.
freeIPMI README && issue about OpenIPMI kernel driver的更多相关文章
- CentOS VirtualBox启动虚拟及报错:VirtualBox error: Kernel driver not installed (rc=1908)
VirtualBox error: Kernel driver not installed (rc=1908) Hi all, Let me first say that this is my fin ...
- Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
VisualBox之所以在Linux上比传统的VMware快得多,关键一点就是它和Linux内核的结合比较紧密,这也是开源的优点. 不过Linux内核更新很频繁,每次更新内核后启动VirtualBox ...
- virtualbox cannot access the kernel driver的解决办法
一位网友windows xp sp3下安装virtualbox 4.1.20版本,安装好了重启过后,可以打开virtualbox,但是等到创建好虚拟电脑后按启动按钮,就出现了错误提示:"Ca ...
- Fedora安装VirtualBox时出现错误Kernel driver not installed (rc=-1908)的解决办法
新建虚拟机后启动时出现如下错误: Kernel driver not installed (rc=-1908) The VirtualBox Linux kernel driver (vboxdrv) ...
- VirtualBox,Kernel driver not installed (rc=-1908)
http://hi.baidu.com/spt_form/item/316d6207b47b8ee03499020a VirtualBox,Kernel driver not installed (r ...
- How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
How To Upgrade ASMLib Kernel Driver as Part of Kernel Upgrade? (文档 ID 1391807.1)
- 参考论坛:Mali kernel driver TX011-SW-99002-r5p1-00rel0 for firefly
最近手头有一块firefly_rk3288_reload的开发板,想实现在linux 下用openGL ES来做视频显示. 找到opengGL相关移植,参考论坛(http://bbs.t-firefl ...
- ubuntu中使用virtualbox遇到Kernel driver not installed (rc=-1908)错误
百度之后得到解决,再此做个笔记 错误提示 Kernel driver not installed (rc=-1908) The VirtualBox Linux kernel driver (vbox ...
- Android Camera 通过V4L2与kernel driver的完整交互过程
http://blog.chinaunix.net/uid-26215986-id-3552456.html 原文地址:Android Camera 通过V4L2与kernel driver的完整交互 ...
随机推荐
- PYDay14:反射、面向对象基础-封装、集成、多态
1.反射 通过字符串的形式,导入模块再通过字符串的形式,去模块中寻找指定的函数并执行eg:__import__(模块) 更加字符串的形式去对象(某个模块)中操作其成员 常用方法: getattr() ...
- Cookie测试的测试点
1.禁止使用Cookie:设置浏览器禁止使用Cookie,访问网页后,检查存放Cookie文件中未生成相关文件: 2.Cookie寻出路径:按照操作系统和浏览器对Cookie存放路径的设置,检查存放路 ...
- ImportError: No module named ‘MySQLdb'
1.APP未注册 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contentty ...
- Flutter 发布APK时,release版本和debug版本的默认权限不同
Flutter 发布APK时,release版本和debug版本的默认权限不同 @author ixenos 在调试模式下,默认情况下启用服务扩展和多个权限(在flutter中) 当您处于发布模式时, ...
- LINQ-内部联接
一.简单键联接 下面的示例创建两个集合,其中包含两种用户定义类型 Person 和 Pet 的对象. 查询使用 C# 中的 join 子句将 Person 对象与 Owner 是该 Person 的 ...
- 【bzoj3231】[Sdoi2008]递归数列 矩阵乘法+快速幂
题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj和 cj ...
- 【Luogu】P2016战略游戏(树形DP)
题目链接 设f[i][j]表示以节点i为根的子树在状态j的情况下的最优解. j有两种情况. j=1:i这个根节点有士兵在站岗. j=0:i这个根节点没有士兵在站岗. 转移方程很好想. f[x][]+= ...
- 【Luogu】P1607庙会班车Fair Shuttle(线段树+贪心)
我不会做贪心题啊……贪心题啊……题啊……啊…… 我真TM菜爆了啊…… 这题就像凌乱的yyy一样,把终点排序,终点相同的按起点排序.然后维护一个查询最大值的线段树.对于一个区间[l,r],如果这个区间已 ...
- 【Luogu】P2759奇怪的函数(二分)
题目链接 看了题解之后突然发现这题简直是水题.然而不看题解就想不出来.为什么呢? len(x)=log10(x)+1 于是二分寻找x. #include<iostream> #includ ...
- spring security 登录、权限管理配置
登录流程 1)容器启动(MySecurityMetadataSource:loadResourceDefine加载系统资源与权限列表) 2)用户发出请求 3)过滤器拦截(MySecurityFil ...