api,cli,gui,tui,dmi(smbios),ipmi,bios,efi,uefi

http://www.gnu.org/software/freeipmi/documentation.html

smbios/dmi

SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。
SMBIOS和DMI是由行业指导机构Desktop Management Task Force (DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
DMI(Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。
DMI(Desktop Management Interface, DMI)的主要组成部分是Management Information Format (MIF)数据库
这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。

对于符合 SMBIOS 规范的计算机,可以通过访问 SMBIOS 的结构获得系统信息,共有两种办法可以访问:
1. 通过即插即用功能接口访问 SMBIOS 结构,这个在 SMBIOS2.0 标准里定义了,从 SMBIOS 2.1 开始这个访问方法不再被推荐使用。
2.基于表结构的方法,表内容是 table entry point 的数据,这个访问方法从 SMBIOS 2.1 以后开始被使用,从 2.1 开始,以后的版本都推荐使用这种访问方式。在 2.1 版本中允许支持这两种方法中的任意一种和两种都支持,但在 2.2 以后的版本,必须支持方法 2 。在最新的 2.7.0 版中第一种方法已经废弃。
鉴于市场上计算机已经均支持 SMBIOS2.3 标准,所以只考虑方法 2 ,基于表结构的访问方式。基于表结构访问 SMBIOS 的过程是先找到 Entry Point Structure ( EPS )表,然后通过 Entry Point Structure ( EPS )表的数据找到 SMBIOS 结构表。

从 SMBIOS 2.3 版本开始,兼容 SMBIOS 的实现必须包含以下 10 个数据表结构: BIOS 信息 (Type 0) 、系统信息 (Type 1) 、系统外围或底架(Type 3) 、处理器信息 (Type 4) 、高速缓存信息 (Type 7) 、系统插槽 (Type 9) 、物理存储阵列 (Type 16) 、存储设备 (Type 17) 、存储阵列映射地址(Type 19) 、系统引导信息 (Type 32) 。

其他的结构表则可根据实际来决定是否需要实现。最新的 SMBIOS 2.7.0 版中定义的所有结构表包括 Type 0-Type 42 ,其中 Type 5 、 Type 6 和Type 10 已经废弃。另外还有 Type 126 和 Type 127 两个特殊结构表。如下:

BIOS 信息 (Type 0) 、系统信息 (Type 1) 、基板(或模块)信息 (Type 2) 、系统外围或底架 (Type 3) 、处理器信息 (Type 4) 、存储控制器信息(Type 5, 已 废弃 ) 、存储模块信息 (Type 6, 已废弃 ) 、调整缓存信息 (Type 7) 、端口连接器信息 (Type 8) 、系统插槽 (Type 9) 。

板载设备信息 (Type 10) 、 OEM 字符串 (Type 11) 、系统配置选项 (Type 12) 、 BIOS 语言信息 (Type 13) 、组相联 (Type 14) 、系统事件日志(Type 15) 、物理存储阵列 (Type 16) 、存储设备 (Type 17) 、 32-bit 内存错误信息 (Type 18) 、存储阵列映射地址 (Type 19) 。

存储设备映射地址 (Type 20) 、内建指针设备 (Type 21) 、便携式电池 (Type 22) 、系统重置 (Type 23) 、硬件安全 (Type 24) 、系统电源控制 (Type 25) 、电压探针 (Type 26) 、冷却设备 (Type 27) 、温度传感器 (Type 28) 、电流探头 (Type 29) 。

越界远程访问 (Type 30) 、引导完整性服务 (BIS) 入口点 (Type 31) 、系统引导信息 (Type 32) 、 64-bit 内存错误信息 (Type 33) 、管理设备 (Type 34) 、管理设备组件 (Type 35) 、管理设备门槛数据 (Type 36) 、存储信道 (Type 37) 、 IPMI 设备信息 (Type 38) 、系统供电电源 (Type 39) 。

附加信息 (Type 40) 、板载设备扩展信息 (Type 41) 、管理控制器主机接口 (Type 42) 。

不活动指示 (Type 126) 、表格结束指示 (Type 127) 。

SMBIOS 的大部分结构表数据在 CIM 模型中都有对应的实现,比如底架信息对应 CIM_Chassis ,处理器信息对应 CIM_Processor ,内存信息对应CIM_Memory 等。

=====================================

linux下读取dmi信息,需要依赖dmidecode工具。
https://blog.csdn.net/tody_guo/article/details/23708527
Dmidecode 遵循 SMBIOS/DMI 标准,其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等。

dmidecode - DMI table decoder

dmidecode is a tool for dumping a computer’s DMI (some say SMBIOS) table contents in a human-readable format. This table contains a description
of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. Thanks to this
table, you can retrieve this information without having to probe for the actual hardware.

SMBIOS stands for System Management BIOS, while DMI stands for Desktop Management Interface. Both standards are tightly related and developed by the DMTF (Desktop Management Task Force).

=====================================

linux下读取ipmi信息,需要依赖ipmitool工具。

http://blog.csdn.net/lanyang123456/article/details/51712878
简介
安装
使用
    配置用户
    配置网络

==============================
IPMI协议被广泛用于服务器监控中,包括采集CPU温度、风扇转速、主板温度,以及远程开关机等等。而且IPMI独立于硬件和操作系统,无论是CPU、BIOS,还是OS出现故障,都不会影响IPMI的工作。因为IPMI的硬件设备BMC(Baseboard Management Controller)是一个独立的板卡,独立供电。

智能平台管理接口(IPMI)

跟snmp类似,都是udp的

ipmi是一个标准,用的协议是rmcp

smbios是一个标准,dmi

相信大家都用过一些系统检测软件 , 或者至少用过 Windows 优化大师里面的系统检测。实际上,应用程序程序就可以通过访问 SMBIOS 来获得这些信息。

ipmitool - utility for controlling IPMI-enabled devices

This program lets you manage Intelligent Platform Management Interface (IPMI) functions of either the local system

-----------------------------------------------

ipmitool这个程序能够使你通过一个kernel设备驱动或者一个远程系统,利用IPMIv1.5或IPMIv2.0 来 管理本地系统的任何一个智能平台管理接口(IPMI)功能。这些功能包括打印FRU(现场可替换装置)信息、LAN配置、传感器读数、以及远程机架电源控制。
一个本地系统接口的IPMI管理功能需要一个兼容IPMI的kernel驱动程序被安装以及配置。在Linux中,这个驱动叫做OpenIPMI,他被包括在了标准化分配中。在Solaris系统中,这个驱动叫做BMC,他被包括在了Solaris 10中。远程控制的管理需要授权以及配置IPMI-over-LAN接口。根据每个系统独特的需要,它可以通过系统接口来使LAN接口使用 ipmitool。

-----------------------------------------------

Ipmitool的open接口利用openipmi的内核设备驱动程序。该驱动存在于所有的现代2.4和所有2.6核心中,以及它应该出现在最新的 Linux发行版的内核中。在OpenIPMI的主页中同样有各种针对于使不同版本的核心可用的IPMI驱动核心补丁。

Ipmitool的lan接口在IPv4下利用UDP通过一个以太局域网连接与BMC相关联。UDP数据报被格式化,通过一个IPMI会话头与RMCP(远程管理控制协议)头 来包含IPMI请求/回复。
       IPMI-over-LAN利用了1版本的远程管理控制协议(RMCP)来支持预操作系统和操作系统缺失的管理。RMCP是一个在623端口上利用UDP数据报的一个请求-回复传输协议。
       LAN接口是一个自动的多会话连接;移交给BMC的信息可以用一个 攻击/回应 协议来认证,使用一个直密码/key或 消息摘要算法。Ipmitool将会尝试着使用administrator权限级别来连接 从而来执行机架电源功能。
       你可以让ipmitool使用lan接口通过“-I lan”操作:
           ipmitool -I lan -H<hostname> [-U <username>] [-P <password>] <command>
       当使用ipmitool的lan接口时,在命令行中必须要主机名。密码部分是可选的;如果在命令行中没有提供密码,ipmitool将会在无验证的情况下去连接。如果你指定了密码,他将使用MD5认证。

-----------------------------------------------

本地监控:
需要安装:
    IPMI驱动(硬件设备被操作系统识别)
    ipmitool或其他工具(通过驱动获取服务器信息)

远程监控:
只需要在客户端安装ipmitool或其他工具
远程模式下,IPMI使用RMCP,RMCP基于UDP协议实现。
远程监控也就是基于UDP的网络通信。
服务器IPMI使用的端口一般是623.

==============================
在centos上安装工具包
yum install ipmitool
ipmitool这个工具能工作的前提是,主机上要有bmc这块嵌入式芯片,才能进行探测

==============================

[root@kvm2 ~]# ipmitool -h
ipmitool version 1.8.15

usage: ipmitool [options...] <command>

-h             This help
       -V             Show version information
       -v             Verbose (can use multiple times)
       -c             Display output in comma separated format

[root@kvm2 ~]# ipmitool shell

ipmitool> sdr help
ipmitool> fru
FRU Device Description : Builtin FRU Device (ID 0)
 Chassis Type          : Other
 Chassis Serial        : 06HENEK
 Chassis Extra         : 7dd6d49e957a11e5ae8f0894ef09d46a
 Board Mfg Date        : Mon Nov  2 20:00:00 2015
 Board Mfg             : IBM
 Board Product         : System Board

===============================
使用IPMI监控服务器主要有两种模式:本地和远程。

===============================
配置用户
通道,用户,密码,权限
一个通道上可以有13个用户

[root@kvm2 ~]# ipmitool channel info
Channel 0x8 info:
  Channel Medium Type   : System Interface
  Channel Protocol Type : KCS
  Session Support       : session-less
  Active Session Count  : 0
  Protocol Vendor ID    : 7154

[root@kvm2 ~]# ipmitool user summary 1
Maximum IDs         : 13
Enabled User Count  : 1
Fixed Name Count    : 1
[root@kvm2 ~]# ipmitool user summary 2
Maximum IDs         : 13
Enabled User Count  : 1
Fixed Name Count    : 1

[root@kvm2 ~]# ipmitool user list 1
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   USERID           true    true       true       ADMINISTRATOR

[root@kvm2 ~]# ipmitool user set name 2 aab

[root@kvm2 ~]# ipmitool user list 1
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   aab              true    true       true       ADMINISTRATOR

[root@kvm2 ~]# ipmitool user set password 2 test

channel 为1,user ID为2,privilege为4

得到通道访问权限
[root@kvm2 ~]# ipmitool channel getaccess 1 1
Maximum User IDs     : 13
Enabled User IDs     : 1

User ID              : 1
User Name            :
Fixed Name           : Yes
Access Available     : call-in / callback
Link Authentication  : disabled
IPMI Messaging       : disabled
Privilege Level      : NO ACCESS

[root@kvm2 ~]# ipmitool channel getaccess 1 2
Maximum User IDs     : 13
Enabled User IDs     : 1

User ID              : 2
User Name            : aab
Fixed Name           : No
Access Available     : call-in / callback
Link Authentication  : enabled
IPMI Messaging       : enabled
Privilege Level      : ADMINISTRATOR

这是远程的通道

ipmitool> channel info
Channel 0x1 info:
Channel Medium Type : 802.3 LAN
Channel Protocol Type : IPMB-1.0
Session Support : multi-session
Active Session Count : 1
Protocol Vendor ID : 7154
Volatile(active) Settings
Alerting : enabled
Per-message Auth : enabled
User Level Auth : enabled
Access Mode : always available
Non-Volatile Settings
Alerting : enabled
Per-message Auth : enabled
User Level Auth : enabled
Access Mode : always available

===============================
配置网络
这个地方配置的IP没有什么限制,只要不与其他机器IP冲突,符合IP规则即可。

ipmitool lan set 1 ipaddr 192.168.60.45
ipmitool lan set 1 netmask *.*.*.*
ipmitool lan set 1 defgw ipaddr *.*.*.*
ipmitool lan set 1 access on
ipmitool lan print 1

如果没有-I选项,ipmitool默认使用open,即Linux OpenIPMI
lanplus是lan的增强版
lan及lanplus主要用于远程监控

==================================
采用entity id + sensor id 就可以唯一确定一个数据

远程监控一例
获取远程主机10.10.228.118的传感器列表,端口623,用户为test,密码为test
ipmitool -I lanplus -H 10.10.228.118 -p 623 -U test -P "test" sdr list
ipmitool -H 192.168.60.10 -U test -P "test" sdr list

远程监控用下面这个命令最合适,然后看帮助。

ipmitool -I lanplus -H 172.17.0.4 -p 623 -U USERID -P "PASSW0RD" shell

ipmitool>sdr help
================================

ipmitool sdr entity
ipmitool sdr help
[root@kvm2 ~]# ipmitool sdr info
SDR Version                         : 0x51
Record Count                        : 323
Free Space                          : 20242 bytes
Most recent Addition                :
Most recent Erase                   :
SDR overflow                        : no
SDR Repository Update Support       : non-modal
Delete SDR supported                : yes
Partial Add SDR supported           : yes
Reserve SDR repository supported    : yes
SDR Repository Alloc info supported : yes

[root@kvm1 ~]# ipmitool sdr entity 35
OS RealTime Mod  | 15h | ok  | 35.1 |
[root@kvm1 ~]# ipmitool -v sdr entity 35
Sensor ID              : OS RealTime Mod (0x15)
 Entity ID             : 35.1 (Operating System)
 Sensor Type (Discrete): System Event (0x12)
 Sensor Reading        : 0h
 Event Message Control : Per-threshold
 Assertions Enabled    : Digital State
                         [State Deasserted]
 Deassertions Enabled  : Digital State
                         [State Deasserted]
 OEM                   : 0

dmi-ipmi的更多相关文章

  1. 【网络——Linux】——IPMI详细介绍【转】

    一.IPMI含义 智能平台管理接口(IPMI:Intelligent Platform Management Interface)是一项应用于服务器管理系统设计的标准,由Intel.HP.Dell和N ...

  2. IPMI (Intelligent Platform Management Interface)

    4.3. ipmitool - utility for controlling IPMI-enabled devices 4.3.1. ipmitool 4.3.1.1. ubuntu 确定硬件是否支 ...

  3. 填坑系列:通过ESXi来配置IPMI

    近日西安的天气很不错,可是看到从其他地方迁移来的主机在新环境下无法远程调试怪郁闷的,这就需要填坑,要不就会给后来者挖更大的坑. 今天遇到的坑是在IPMI的网络设置里面启用了VLAN标签之后,在新环境下 ...

  4. 基于Zabbix IPMI监控服务器硬件状况

    基于Zabbix IPMI监控服务器硬件状况 zabbix ipmi 公司有多个分部,且机房没有专业值班,机房等级不够.在这种情况下,又想实时监控机房环境,于是使用IPMI方式来达到目的.由于之前已经 ...

  5. IPMI

    ipmitool -I lanplus -H 10.79.62.64 -U admin -P Nbv12345 [chassis power soft]/[raw 6 2 5] ipmiutil [r ...

  6. Struts2动态方法调用(DMI)

    当structs.xml解析到Action的时候,默认执行的是此action的execute()方法,但是实际开发中,我们的action中含有很多方法,比如说增删改查的方法,那么structs.xml ...

  7. struts2 DMI

    在使用DMI(动态方法调用)的时候要注意struts.xml配置时要把 <constant name="struts.enable.DynamicMethodInvocation&qu ...

  8. struts2 CVE-2012-0392 S2-008 Strict DMI does not work correctly allows remote command execution and arbitrary file overwrite

    catalog . Description . Effected Scope . Exploit Analysis . Principle Of Vulnerability . Patch Fix 1 ...

  9. 什么是DMI,SMBIOS,符合SMBIOS规范的计算机的系统信息获取方法

    转自:http://www.cnblogs.com/gunl/archive/2011/08/08/2130719.html DMI是英文单词Desktop Management Interface的 ...

  10. ipmi使用

    1.安装ipmitool Linux: yum -y install OpenIPMI-tools 备注:Linux机器也可以安装ipmi  yum -y install OpenIPMI OpenI ...

随机推荐

  1. ES6 常用总结(前端开发js技术进阶提升总结)

    一.变量声明const和let 在ES6之前,我们都是用var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数的最顶部就在全局作用域的最顶部).这就是函数变量提升例如: 不用关心 ...

  2. OPENAPI规范Swagger

    OPENAPI规范 是一种规范,Swagger是一种工具,Swagger帮我们使用OPENAPI更具体更完善,更好. 博客1:https://app.swaggerhub.com/help/index ...

  3. 温顾知新系列-JAVA网络编程系统(1)- 流

    一.字节流 1. 输出流 Java的基本输出流类是java.io.OutputStream; public abstract calss OutputStream 此类常用的写入数据的基本方法如下: ...

  4. fcn+caffe+siftflow实验记录

    环境搭建: vs2013,编译caffe工程,cuda8.0,cudnn5.1,python2.7. 还需要安装python的一些包.Numpy+mkl  scipy  matplotlib  sci ...

  5. 【分布式搜索引擎】初识Elasticsearch

    一.Elasticsearch是什么? Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎. Elasticsearch是一个实时分布式搜索和分析引擎.它让你以前所未 ...

  6. Intellij IDEA 最新旗舰版注册激活破解(2018亲测,可用)

    1.2017年亲测 参考:https://www.haxotron.com/jetbrains-intellij-idea-crack-123/ 安装IntelliJ IDEA 最新版 启动Intel ...

  7. C语言函数的存储类别

    函数默认的隐含存储类型是extern auto:只能用于局部变量 extern:允许被其他文件调用 static:只能被本源程序文件调用

  8. leetcode python 012 hard 合并k个有序链表

    #[LeetCode] Merge k Sorted Lists 合并k个有序链表(升序) import numpy as npimport time class Node(object):    d ...

  9. TCP/IP 数据包报文格式(IP包、TCP报头、UDP报头)(转)

    reference:http://blog.51cto.com/lyhbwwk/2162568                    https://blog.csdn.net/wangzhen209 ...

  10. 使用GraphHttpClient调用Microsoft Graph接口 - POST

    博客地址:http://blog.csdn.net/FoxDave 本篇接上一讲,我们继续看如何通过GraphHttpClient创建一个Office 365的组,需要使用POST请求. 为结果添加按 ...