• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

OpenBMC: OpenBMC is an open software framework to build a complete Linux image f ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

OpenBMC

开源软件地址:

https://gitee.com/xbpuligo/openbmc

开源软件介绍:

OpenBMC

OpenBMC is an open software framework to build a complete Linux image for a Board Management Controller (BMC).

OpenBMC uses the Yocto Project as the underlying building and distro generation framework.

BoardStatusDescription
Wedge100Build StatusA 32x100G TOR switch
LightningBuild StatusA flexible NVMe JBOF
YosemiteBuild StatusAn open source modular chassis for high-powered microservers
WedgeBuild StatusA 40G OS-agnostic TOR switch

Contents

This repository includes 3 set of layers:

  • OpenBMC Common Layer - Common packages and recipes can be used in different types of BMC.
  • BMC System-on-Chip (SoC) Layer - SoC specific drivers and tools. This layer includes the bootloader (u-boot) and the Linux kernel. Both the bootloader and Linux kernel shall include the hardware drivers specific for the SoC.
  • Board Specific Layer - Board specific drivers, configurations, and tools. This layer defines how to configure the image. It also defines what packages to be installed for an OpenBMC image for this board. Any board specific initialization and tools are also included in this layer.

File structure

The Yocto naming pattern is used in this repository. A "meta-layer" is used to name a layer or a category of layers. And recipe-abc is used to name a recipe. The project will exist as a meta layer itself! Within the Yocto Project's distribution call this project meta-openbmc.

The recipes for OpenBMC common layer are found in common.

The BMC SoC layer and board specific layer are grouped together based on the vendor/manufacturer name. For example, all Facebook boards specific code should be in meta-facebook. Likewise, meta-aspeed includes source code for Aspeed SoCs.

How to build

  1. Set up the build environment based on the Yocto Project's Quick Start Guide.

  2. Clone Yocto repository:

$ git clone -b fido https://git.yoctoproject.org/git/poky
  1. Clone OpenEmbedded and OpenBMC repositories, in the new created poky directory:
$ cd poky$ git clone -b fido https://github.com/openembedded/meta-openembedded.git$ git clone -b fido https://git.yoctoproject.org/git/meta-security$ git clone https://github.com/facebook/openbmc.git meta-openbmc

Note that this project does not use Yocto release branch names.

  1. Initialize a build directory. In the poky directory:
$ export TEMPLATECONF=meta-openbmc/meta-facebook/meta-wedge/conf$ source oe-init-build-env

Choose between meta-wedge, meta-wedge100, and meta-yosemite.After this step, you will be dropped into a build directory, poky/build.

  1. Start the build within the build directory:
$ bitbake wedge-image

The build process automatically fetches all necessary packages and builds the complete image. The final build results are in poky/build/tmp/deploy/images/wedge. The root password will be 0penBmc, you may change this in the local configuration.

Build Artifacts

  • u-boot.bin - This is the u-boot image for the board.
  • uImage - This the Linux kernel for the board.
  • wedge-image-wedge.cpio.lzma.u-boot - This is the rootfs for the board
  • flash-wedge - This is the complete flash image including u-boot, kernel, and the rootfs.

Yocto Configuration

It is recommended to setup a new Yocto distribution (a checkout of poky). The initialization script oe-init-build-env can read the included TEMPLATECONF and set up a local build/conf/local.conf along with the associated layer/build configuration.

If you have previously set up and built poky, you may change your local configuration:

When using the example TEMPLATECONF for Wedge, the ./build/conf/templateconf.cfg:

meta-openbmc/meta-facebook/meta-wedge/conf

The layers config ./build/conf/bblayers.conf, will contain:

BBPATH = "${TOPDIR}"BBFILES ?= ""BBLAYERS ?= " \  /PREFIX/poky/meta \  /PREFIX/poky/meta-yocto \  /PREFIX/poky/meta-yocto-bsp \  /PREFIX/poky/meta-openembedded/meta-oe \  /PREFIX/poky/meta-openembedded/meta-networking \  /PREFIX/poky/meta-openembedded/meta-python \  /PREFIX/poky/meta-openbmc \  /PREFIX/poky/meta-openbmc/meta-aspeed \  /PREFIX/poky/meta-openbmc/meta-facebook/meta-wedge \  "BBLAYERS_NON_REMOVABLE ?= " \  /PREFIX/poky/meta \  /PREFIX/poky/meta-yocto \  "

And finally the ./build/config/local.conf will include important configuration options:

# Machine SelectionMACHINE ??= "wedge"# OpenBMC distro settingsDISTRO ?= "openbmc-fb"

How can I contribute

If you have an application that can be used by different BMCs, you can contribute your application to the OpenBMC common layer.

If you are a BMC SoC vendor, you can contribute your SoC specific drivers to the BMC SoC layer.

If you are a board vendor, you can contribute your board specific configurations and tools to the Board specific layer. If the board uses a new BMC SoC that is not part of the BMC SoC layer, the SoC specific driver contribution to the BMC SoC layer is also required.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap