OpenBMC是用于用于服务器,机架开关顶部或RAID电器等设备中的管理控制器的Linux分发。它使用Yocto,OpenEmbedded,SystemD和D-Bus来轻松为您的平台定制。
有关最新要求,请参见Yocto文档
sudo apt install git python3-distutils gcc g++ make file wget
gawk diffstat bzip2 cpio chrpath zstd lz4 bzip2
sudo dnf install git python3 gcc g++ gawk which bzip2 chrpath cpio
hostname file diffutils diffstat lz4 wget zstd rpcgen patch
git clone https://github.com/openbmc/openbmc
cd openbmc
任何构建都需要根据您的硬件目标设置的环境。该存储库的根部有一个特殊的脚本,可用于根据需要配置环境。该脚本称为setup
,并将硬件目标的名称作为参数。
脚本需要在OpenBMC存储库克隆的顶部目录中来源,如果没有参数,将显示支持的硬件目标的列表,请参见以下示例:
$ . setup <machine> [build_dir]
Target machine must be specified. Use one of:
...
在元磷酸/文档下,可以找到更完整的支持机器的列表。
一旦知道目标(例如romulus),请按照以下方式来setup
:
. setup romulus
bitbake obmc-phosphor-image
其他详细信息可以在文档存储库中找到。
OpenBMC社区维护了一组新用户可以通过的教程,以加快此处的OpenBMC开发的速度
OpenBMC GitHub社区成员提交的提交通过我们的Jenkins服务器进行了编译和测试。提交通过两个级别的测试进行。在存储库级别,MAKEFILE make check
指令正在运行。在系统级别上,该提交被内置在固件图像中,并使用ARM-SOFTMMU QEMU模型运行,以弹跳CI测试。
非成员提交的提交不会自动通过CI测试进行。在观察提交后,可以由审阅者手动执行CI运行。
对QEMU模型以及支持系统进行了自动测试。 OpenBMC项目使用机器人框架进行所有自动化。我们的完整测试存储库可以在这里找到。
始终欢迎支持其他硬件和软件包。提交时,请遵循贡献指南。预计贡献包含测试案例。
问题在Github上进行管理。建议您在打开新问题之前搜索问题。
首先,请在互联网上进行搜索。您的问题很有可能。
有关一般问题,请在堆栈溢出上使用OpenBMC标签。在发布任何代码之前,请查看有关堆栈溢出许可的讨论。
有关技术讨论,请参阅下面的联系信息以获取不和谐和邮件列表信息。请不要提出问题。通过使用邮件列表或不和谐,您将获得更快的结果。
这是一个普遍的问题,尤其是关于来自Supermicro和Asrock等流行的COTS(商业现成)供应商的董事会。您可以通过运行看到受支持的董事会的列表. setup
在OpenBMC源树的根部. setup
(没有其他参数)。由OpenBMC支持的大多数平台都是由运行大型数据中心的公司运营的专业服务器,但是在不同程度上支持了一些更多的通用COTS服务器。
如果您的主板未在输出中列出. setup
当前不支持它。将OpenBMC移植到一个新平台是一项非平凡的事业,理想情况下,在制造商的示意图和其他文档的帮助下完成(如果没有通过反向工程文档进行文档,则不完全是完全不可行的,但是这要难得多得多,但是它要难得多。 ,并且可能涉及更大的硬件损坏风险)。
但是,即使您的主板是输出中列出的. setup
,有两个重要的警告要牢记。首先,并非所有端口都同样成熟 - 某些平台比其他平台得到了更好的支持,并且某些“受支持”板上的功能可能受到相当限制。其次,对主板的支持与对完整系统的支持不同 - 尤其是,粉丝控制不仅取决于主板,而且还取决于与之相连的粉丝以及董事会和粉丝所包含的底盘,两者都可以使用相同的板模型在系统之间发生巨大变化。因此,尽管您可能能够在系统上编译和安装OpenBMC构建并获得一些基本功能,但可能是粗糙的边缘(例如,在全油门上连续运行的冷却风扇)。
另请参见“支持的机器”。
通过打开DOCS存储库来深入研究OpenBMC。
技术指导委员会(TSC)指导该项目。成员是: