openbmc开发1:openbmc简介
2024-09-17 03:10:56 | 作者: 匿名
根据IPMI规范,BMC需要满足以下条件:
支持通过相应IPMI所需命令访问IMPI协议的SDR(传感器数据记录)、SEL(系统事件记录)、FRU(现场可更换单元)、固件更新等功能;支持redfish协议,提供BMC访问接口(通常是网络接口)进行远程管理;提供标准化看门狗定时器接口和看门狗内部事件生成功能;提供可供其他主机组件使用的事件接收函数;可远程操作主机主机系统、安装操作系统等;简单来说,BMC就是服务器主板上的一个小型独立系统。它有自己的处理器和控制系统。它通过IPMB、LPC(低引脚数接口)、SMBus等接口与主机硬件或主机系统进行通信,并可通过网络、串口/Modem、PCI等传输到本地主机/远程服务器。提供查询和控制功能的接口。
1.2 OpenBmc
2014 年,四名Facebook 程序员在Facebook 黑客马拉松上创建了一个名为OpenBMC 的开源BMC 固件原型。
2015年,IBM与Rackspace合作开发了开源BMC固件堆栈,也称为OpenBMC。这些项目仅在名称和概念上相似。
2018 年3 月,OpenBMC 成为Linux 基金会项目并集成在IBM 堆栈上。 OpenBMC项目的创始组织是微软、英特尔、BM、谷歌和Facebook。由五家创始公司的代表组成的技术指导委员会已经成立,以指导该项目。 IBM 的Brad Bishop 当选为技术指导委员会主席。
2019年4月,Arm Holdings还加入了OpenBMC技术指导委员会,成为第六位成员。
OpenBMC 是BMC 的Linux 开源发行版,旨在管理跨异构系统的系统,包括企业、高性能计算(HPC)、电信和云规模数据中心。
OpenBmc采用YoctoProject作为底层构建和分发框架,并结合OpenEmbedded、systemd、D-Bus等技术,轻松定制管理平台。同时,OpenBMC包含一个用于与固件交互的Web应用程序,并支持用于硬件管理的Redfish协议。主要包括常用主机状态查看与控制、主机固件更新、主机远程操作(KVM)等功能。
2 IPMI简介
早期可以说IPMI是目前BMC的核心,通过ipmi协议实现BMC的远程控制。 IPMI的全称是智能平台管理接口。 IPMI规定了很多东西,其中BMC是最重要的部分。此外,还有一些“模块”控制器通过IPMB连接到BMC。这些“模块”控制器一般控制特定设备,有的支持热插拔。 IPMB 代表智能平台管理总线。它是一种基于I2C的串行总线。用于BMC与模块(主板上的子卡)控制器之间的通信。 IPMI 命令通过它传递。 IPMB是实现IPMI协议的硬件。界面。
IPMI接口基于命令/响应机制。它可以通过网络对机箱、传感器、固件、存储和应用程序等主机组件的信息进行分类和传输。它可以通过软件ID对BIOS、系统管理软件、远程终端等传感器进行分类管理。采用统一的格式在网络、串口/Modem接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上进行传输。
IPMI1.0于1998年9月16日发布,建立了基本规范。
IPMI1.5于2001年2月21日发布,允许IPMI系统通过串口、BMC专用带外网口或带内网口(NC-SI)与远程管理系统进行通信与楼主分享。
IPMI2.0于2004年2月12日发布,增加了SOL(Serial over LAN)、组管理系统、身份认证(RAKP+、SHA-1等)、基于OpenSSL/RCMP+的安全增强网络接口、固件防火墙和VLAN支持等。其中,SOL支持将BIOS输出和操作系统终端重定向到连接BMC的串口,然后通过IPMI连接到远程系统管理软件。同时,IPMI2.0兼容系统通常还提供KVM over IP(基于IP的远程键盘、鼠标和显示器连接)、远程桌面和页面服务器等功能,尽管这些功能不属于IPMI协议。
IPMI 2.0 修订版1.1 于2013 年10 月1 日发布,修订了勘误表、注释和附录,并添加了对IPv6 寻址的支持。
更多信息请参考Intel IPMI技术资源网站(https://www.intel.com/content/www/us/en/servers/ipmi/ipmi-technical-resources.html)以及常见IPMI软件开源项目对比( http://ipmiutil.sf.net/docs/ipmisw-compare.htm)。
3 Yocto项目简介
Project Yocto 是一个Linux 基金会协作开源项目,其目标是开发工具和流程,支持创建独立于嵌入式硬件底层架构的嵌入式和物联网软件的Linux 发行版。该项目由Linux 基金会于2010 年宣布,并于2011 年3 月与包括OpenEmbedded 在内的22 个组织合作启动。 2018 年10 月,Arm Holdings 与英特尔合作,通过Yocto 项目共享嵌入式系统代码。
Yocto 项目的目的和目标是尝试改进开发人员的工作,简化针对ARM、MIPS、PowerPC 和x86/x86-64 架构的定制Linux 系统。其中的关键部分是OpenEmbedded 构建系统,它使开发人员能够创建适合其环境的自己的Linux 发行版。 YoctoProject 和OpenEmbeddedProject 共享OpenEmbedded 构建系统主要部分的维护权:构建引擎BitBake 和核心元数据OpenEmbedded-Core。 Yocto 项目提供了一个名为Poky 的库,其中包含OpenEmbedded 构建系统和以分层系统排列的大量配方,可用作自定义嵌入式操作系统的全功能模板。
Yocto项目框架下还有其他几个子项目,包括CROPS、伪交叉预链接、Eclipse集成(从2.7版本中删除)、Matchbox应用程序套件等等。该项目的主要目标之一是这些工具之间的通用性和交互性。
该项目提供的系统尺寸范围从“微小”到功能齐全的图像,可由最终用户配置和定制。该项目鼓励与上游项目互动,并对OpenEmbedded-Core 和BitBake 以及包括Linux 内核在内的众多上游项目做出了重大贡献。生成的图像通常用于嵌入式Linux 系统,这些系统是常用的系统或不具有与桌面Linux 系统相关的传统屏幕/输入设备的系统。
除了构建Linux 系统之外,您还可以生成用于交叉编译的工具链和为您自己的发行版量身定制的软件开发工具包(SDK),也称为应用程序开发工具包(ADT)。该项目试图与软件和供应商无关。例如,您可以选择使用哪种包管理器格式(deb、rpm 或ipk)。在构建中,有用于各种构建时健全性/回归测试的选项,以及在QEMU 下启动和测试某些映像以验证构建的选项。构建过程如下图所示。
更多信息请参考Yocto官方(https://www.yoctoproject.org/)和Yocto文档(https://docs.yoctoproject.org/)。
4 BMC硬件CPU
最流行的OpenBmc硬件平台是Aspeed,其次是Xilinx、NXP等。目前aspeed芯片是bmc管理平台的核心(请参考aspeed官网),类似于Intel和AMD CPU ,但ASPEED是ARM架构。最新的SOC型号为AST2600,采用ARM V7架构的双核ARMCotexA7。
AST2600
AST2500
AST2400
AST2300
嵌入式CPU
双核ARM Cortex A7 嵌入式ARM Cortex M3
800MHzARM11
400MHz ARM926EJ 16KB/16KB 缓存
400MHz ARM926EJ 16KB/16KB 缓存
SDRAM内存
速度等级高于DDR4-1600Mbps 的DDR4 SDRAM 高达2G ByteECC 选项
800Mbps DDR3/1600Mbps DDR4 SDRAM16位数据总线宽度高达1G ByteECC选项
800Mbps DDR3/DDR2 SDRAM16 位数据总线宽度高达512 MBECC 选项
800Mbps DDR3/DDR2 SDRAM 16 位数据总线宽度高达512 MB ECC 选项
闪存
SPI闪存
SPI闪存
NOR/NAND/SPI 闪存
NOR/NAND/SPI 闪存
IP视频
视频重定向高达1920x1200YUV444/YUV420视频压缩24位视频压缩质量
视频重定向高达1920x1200YUV444/YUV420视频压缩24位视频压缩质量
视频重定向高达1920x1200YUV444/YUV420 视频压缩24 位视频压缩质量
视频重定向高达1920x1200 YUV444/YUV420 视频压缩24 位视频压缩质量
USB-Over-IP
支持5 个设备的USB 2.0 虚拟集线器控制器USB 1.1 HID 设备控制器
支持5 个设备的USB 2.0 虚拟集线器控制器USB 1.1 HID 设备控制器
USB 2.0 虚拟集线器控制器,支持5 种任意类型设备USB 1.1 HID 设备控制器
USB 2.0 虚拟集线器控制器,支持5 个任意类型的设备USB 1.1 HID 设备控制器
BMC
兼容IPMI 2.0/1.5 的BMC 控制器远程呈现(iKVM) PCIehost 功能eSPI/LPCMCTP overPCIeI2C/I3C/SMBus(共16 组)虚拟UART(1 组)UART(13 组和1 组用于固件调试)GPIO(244 组)SGPIO (80 位)PWM (16 组)安全启动引擎风扇转速计(16 组)PECI 4.0USB1.1/2.0 HostSD/SDIO (2 端口)嵌入式SRAMADC (16 通道)端口80h snoopWatchdog (3 组)定时器(8 组)
是的
是的
是的
VGA
PCIe VGA/2D 控制器1920x1200@60Hz32bpp
PCIe VGA/2D 控制器1920x1200@60Hz 32bpp
PCIe VGA/2D 控制器1920x1200@60Hz 32bpp
PCIe VGA/2D 控制器1920x1200@60Hz 32bpp
VGA驱动程序
RHELSLESSolarisUbuntuFreeBSDFedoraWindows Server 2012 R2(WHQL 徽标)Windows Server 2016(WHQL 徽标)Windows Server 2019(WHQL 徽标)
RHELSLESSolarisUbuntuFreeBSDFedoraWindows Server 2008 R2(WHQL 徽标)Windows Server 2012 R2(WHQL 徽标)
RedhatRHEL 3/4/5/6SUSE SLES 9/10/11Solaris x86Windows Server 2008 R2(带有WHQL 徽标)Windows Server 2008 x86/x64(带有WHQL 徽标)Windows Server 2003 x86/x64(带有WHQL 徽标)Windows 2000 系列(带有WHQL 徽标) 'ed) 'ed)Windows XP x86/x64
Redhat RHEL 3/4/5/6 SUSE SLES 9/10/11 Solaris x86 Windows Server 2008 R2(带有WHQL 徽标) Windows Server 2008 x86/x64(带有WHQL 徽标) Windows Server 2003 x86/x64(带有WHQL 徽标) ed) ed) Windows 2000 系列(WHQL 徽标) Windows XP x86/x64
局域网
四路10/100/1000M bps MAC
双10/100/1000M bps MAC
双10/100/1000M bps MAC
双10/100/1000M bps MAC
技术
624 引脚21mmx21mm TFBGA 封装
456 引脚19mmx19mm TFBGA 封装
408 引脚19mmx19mm LFBGA 封装
408 引脚19mmx19mm TFBGA 封装
引脚兼容性
AST2620
AST2510、AST2520、AST2530
AST2400、AST1400、AST1250
AST1300、AST1050
目前,OpenBmc项目中最常用的芯片是AST2500系列。 AST240和AST2300系列比较少用,AST2400系列已经停产多年。 AST2600是ASPEED第七代服务器管理处理器,也是全球首款采用28nm先进工艺技术的BMC SoC。 AST2600采用双核ARM Cortex A7处理器,不仅提高了性能和计算能力,还降低了功耗。此外,AST2600支持SecretBoot模式和ARM Cortex A7 TrustZone,可以为客户提供出色的信息安全保护。由于AST2600系列推出时间不长,目前仍在适配中。各大服务器厂商和BMC软件公司都有芯片,但尚未在服务器中广泛应用。 AST2600尺寸稍大,但比上一代多了近170个GPIO引脚,表明新一代AST可以实现更丰富的功能。
随着云、AI等大趋势的到来,未来对服务器的需求将会更大,而服务器的稳定性和安全性都需要BMC进行管理和维护。因此,BMC芯片越来越受到服务器厂商的重视。另外,由于BMC几乎可以纵观服务器的一切,面对贸易制裁和芯片安全问题,国产化浪潮已经到来。未来,不仅服务器在关键领域将被国产芯片取代,BMC也必须采用国产芯片。国产芯片替代。不过就国产BMC芯片而言,目前还没有真正的BMC芯片(除了海思Hi1710,毕竟这款芯片不对外开放,必须配合iBMC使用)。目前,龙芯芯片和飞腾芯片主要提供芯片。应用于BMC场景(可以用,但好不好用另当别论)。
龙芯最早的BMC芯片是ls1a300,勉强够用在特殊场景(主频低、不支持KVM)。严格来说,它不能算是BMC芯片。 2021年7月,龙芯发布了基于2k(嵌入式平台)的LA264单核64位SOC ls2k0500(LA架构,https://www.loongson.cn/product/show?id=9),支持KVM功能,但实际上,它还处于测试和打磨阶段,尚未得到广泛应用。 2k0500的对标产品是aspeed2500,但各方面还需要改进和优化。毕竟这款芯片的BMC应用场景只是其中之一。预计经过龙芯打磨和优化的下一代产品将具有更好的性能和竞争力。
Phytium于2022年12月28日公开了eBMC应用方案(https://phytium.com.cn/article/1043),该方案基于Phytium E2000(https://phytium.com.cn/article/972)芯片以及openbmc、BMC应用场景也是E2000的一个方向。从公开的数据表来看,是飞腾自家的ARMV8架构下的FTC310单核芯片。产品基准为aspeeed2600,主频相同,说明书上两者功耗相差不大,但实际可用的GPIO管脚却少了很多。因为是ARM架构,所以有先天的优势。由于适配openbmc的芯片都是ARM架构(除了xilinx),所以E2000适配openbmc并不困难。不出意外,我们很快就能看到这款芯片与飞腾自家的服务器CPU搭配时发挥出最大的作用,可以充分利用CPU与BMC芯片和服务器芯片之间的强相关性能(独特的功能)。
5 OpenBMC软件架构
BMC硬件本身是Linux系统,但与日常计算机系统相比,BMC中的硬件资源非常有限。 BMC硬件中,CPU运行速度较慢(目前BMC芯片频率低于1GHZ),闪存(flash)一般为32MB,RAM一般为256MB。因此,OpenBMC被设计为一个完整的Linux发行版,可以灵活定制以支持不同的SoC芯片或不同的板卡。
OpenBMC 映像包括引导加载程序(u-boot)、内核、开源软件包和主板特定软件包。在“Wedge”内部的BMC上运行的“OpenBMC”软件包如下图所示。
u-boot(引导程序)和内核都包含了BMC芯片的各种硬件驱动,主要包括gpio驱动、PWM驱动、i2c驱动、SPI驱动、LPC驱动、USB驱动以及芯片外围硬件设备驱动等。
开源软件包一般包括文件系统中常用的应用程序,如BusyBox、i2c工具、lm传感器、OpenSSH和Python、Ldap等。
用户板的软件包包括针对特定板的初始化脚本和工具。例如,从EEPROM获取资产信息的工具、可以根据环境读数控制风扇转速的风扇控制应用程序、ipmi协议守护进程、redfish协议程序、网络后端服务程序(实际用户用于远程管理)、BMC配置、监控手续等
在OpenBMC中,配置文件可以分为三层:
1. 通用层:包括可在不同板卡和BMCSoC上使用的软件包。比如元开放嵌入、元安全等。
2. SoC层:包括BMCSoC专用的软件包,例如Aspeed针对AST2300/AST2400SoC的基础包,bootloader和kernel都是在SoC层定义的。如meta-aspeed、meta-raspberrypi、meta-xilinx等。
3. Board level层:包括针对不同板卡的包、应用于特定Wedge硬件配置的初始化脚本和工具,例如meta-facebook、meta-ibm等。
6 OpenBmc源码
openbmc的git仓库地址:openbmc仓库,源代码文件(2.14)内容如下:
各层对应的SOC及厂商如下表所示。
BSP目录
单板型号
SOC模型
SoC/服务器制造商
元-evb/元-evb-aspeed/元-evb-ast2500
evb-ast2500
速速AST2500
新华科技
元-evb/元-evb-aspeed/元-evb-ast2600
evb-ast2600
速速AST2600
新华科技
元-EVB/元-EVB-nuvoton/元-EVB-npcm750
evb-npcm750
新唐NPCM7XX
新唐科技
元-evb/元-evb-nuvoton/元-evb-npcm845
evb-npcm845
新唐NPCM8XX
新唐科技
元evb/元evb-raspberrypi
树莓派
树莓派
树莓派
元AMD/
Daytonax, 乙醇x
速速AST2500
AMD
元安培
玉
速速AST2500
安盛培半导体科技有限公司
元华擎/
e3c246d4i,romed8hm3
速速AST2500
华擎科技
元字节跳动/元-g220a
g220a
速速AST2500
字节跳动
元三角洲
阿赫50dc
速速AST2400
元脸书/元-tiogapass
泰奥加帕斯
速速AST2500
梅塔·菲伊/mea-kudo
工藤
新唐NPCM730
工业工业联合会
梅阿莫里
森
新唐NPCM730
工业工业联合会
元谷歌/
ASPEED/新唐
谷歌
元HPE
DL360POC
惠普
惠普
元-IBM/元-fsp2
ibm-z
飞行速度2
元-IBM/元-palmetto
棕榈树
速速AST2400
IBM
元ibm/元romulus
罗穆卢斯
速速AST2500
IBM
元-IBM/元-威瑟斯彭
威瑟斯彭
速速AST2500
IBM
Meta-Ingrasys/meta-zaius
扎伊乌斯
速速AST2500
红百客
浪潮元/meta-on5263m5
上5263m5
速速AST2500
海浪
元英特尔-openbmc/元-s2600wf
s2600wf
速速AST2500
英特尔
元英泰克/元兰阳
兰阳
速速AST2500
英业达
元高通/
高通公司
速速AST2500
高通
元量子/元-f0b
离岸价
速速AST2500
广达
元量子/元gsj
GSJ
新唐NPCM7XX
广达
梅塔量子/梅塔奥林巴斯-nuvoton
奥林匹克
us-nuvoton NuvotonNPCM7XX 广达 meta-quanta/meta-q71l quanta-q71l ASPEED AST2400 广达 meta-tyan/meta-s7106 s7106 ASPEED AST2500 泰安 meta-tyan/meta-s8036 s8036 ASPEED AST2500 泰安 meta-wistron/meta-lannister lannister ASPEED AST2600 纬创 meta-yadro/meta-nicole nicole ASPEED AST2500 亚德罗 注:不同的版本下BSP会有区别,其它文件基本是yocto文件或者BMC芯片的通用的配置。7 OpenBmc固件厂商
目前固件厂商主要是AMI(美国)、Insyde Software (系微,台湾)、昆仑太科、百敖软件厂商,在openbmc出现之前,BMC固件几乎全是AMI公司,目前,AMI仍是一家独大,但在国内市场越来越多的的使用昆仑、百敖、长城等固件,另外一些有能力的OEM大厂也开始使用基于openbmc的固件(浪潮、字节、阿里、H3C等)。由于BMC固件需要和BIOS进行交互,因此,一般BMC固件都是出自BIOS厂商。声明:本文由入驻作者编辑撰写,除官方账号外,观点仅代表作者本人,不代表本平台立场,如有侵犯您的知识产权的作品和其它问题,请与我们取得联系,我们会即时修改或删除。
相关新闻
-
中超联赛争冠组赛制解析
1. 什么是中超争冠组赛制?中超联赛争冠组赛制是指在赛季末将排名前六名的球队组成一组,进行一轮单循环的比赛,获胜积分最高的球队将荣膺该赛季的中超冠军。2. 中超争冠组赛制的优点是什么?首先,中超争冠组赛制缩小了争冠球队之......
-
巴塞罗那vs巴黎圣日耳曼6比1回放,巴塞罗那vs巴黎圣日耳曼6比1全场视频
1. 赛前阵容分析巴塞罗那和巴黎圣日耳曼各自派出了最强阵容参加这场比赛。巴塞罗那的梅西、苏亚雷斯和内马尔以及巴黎圣日耳曼的博格巴、迪马利亚和卡瓦尼都是顶尖球星,他们的发挥将直接影响比赛。2. 巴塞罗那的控球优势巴塞罗那在......
24小时热文
-
puma足球鞋,Puma足球鞋mg106673-02
2023-10-15
-
1993年NBA总决赛数据纪念经典时刻,回顾传奇巨星们的辉煌岁月
2024-01-12
-
介绍2010年NBA总决赛黑哨内幕,让你看清现实世界的阴暗面
2023-12-18
-
如何成为NBA真球迷?WinFuture广告告诉你答案
2024-03-18
-
nba球员效率值如何查询?
2023-11-07
-
NBA2K17热火队精彩比赛集锦
2024-01-30
用户评论
第一次了解openbmc,感觉这个技术挺有意思的。期待后续的开发教程,希望对服务器管理有所帮助。
有10位网友表示赞同!
openbmc听起来挺高端的,不知道具体是干什么的,希望介绍能详细一点。
有13位网友表示赞同!
看了简介,感觉openbmc的功能挺强大的,但是对于初学者来说,可能有点难上手。
有11位网友表示赞同!
openbmc开发?太酷了!我一直对服务器硬件管理很感兴趣,希望教程能深入浅出。
有16位网友表示赞同!
简介说openbmc是开源的,那我是不是可以自己尝试修改?这让我很兴奋。
有10位网友表示赞同!
openbmc简介里提到的远程管理功能太实用了,我工作中经常需要远程操作服务器。
有15位网友表示赞同!
openbmc听起来像是个复杂的系统,我对它的工作原理很感兴趣,期待详细解析。
有20位网友表示赞同!
作为一个硬件爱好者,看到openbmc的开发教程,简直热血沸腾!
有19位网友表示赞同!
openbmc简介中的安全特性让我印象深刻,希望后续教程能多介绍一些安全相关的知识。
有15位网友表示赞同!
虽然我对openbmc不是很了解,但是看到这样的开发教程,我也会试着去学习一下。
有9位网友表示赞同!
openbmc的开发听起来很专业,如果不是从事相关领域的工作,可能不太容易理解。
有16位网友表示赞同!
openbmc简介中提到的自动化管理功能,能大大提高工作效率,真是期待后续教程。
有6位网友表示赞同!
作为一个系统管理员,我对openbmc这样的技术很感兴趣,希望能学到更多。
有5位网友表示赞同!
openbmc简介提到了社区支持,这对于开源项目来说非常重要,希望社区能越来越强大。
有7位网友表示赞同!
看了openbmc的简介,感觉这个项目有很大的潜力,希望开发者们能坚持下去。
有20位网友表示赞同!
openbmc的开发教程出来后,一定要关注,毕竟这样的技术对服务器管理很重要。
有19位网友表示赞同!
openbmc简介里的分布式系统管理功能,对于大型数据中心来说,应该是非常有用的。
有20位网友表示赞同!
openbmc的开发让我想起了Linux内核,感觉都是那么有趣,希望教程能让我更深入地了解。
有10位网友表示赞同!
作为一个服务器运维人员,看到openbmc这样的技术,真是想马上上手尝试。
有14位网友表示赞同!