{"id":17921550,"url":"https://github.com/theopolis/openbmc-test","last_synced_at":"2025-04-03T11:14:44.070Z","repository":{"id":145262796,"uuid":"182363001","full_name":"theopolis/openbmc-test","owner":"theopolis","description":null,"archived":false,"fork":false,"pushed_at":"2019-04-23T12:41:55.000Z","size":12304,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T00:31:40.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theopolis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-20T05:10:55.000Z","updated_at":"2019-04-23T12:45:28.000Z","dependencies_parsed_at":"2023-04-10T17:50:38.659Z","dependency_job_id":null,"html_url":"https://github.com/theopolis/openbmc-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopolis%2Fopenbmc-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopolis%2Fopenbmc-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopolis%2Fopenbmc-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopolis%2Fopenbmc-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theopolis","download_url":"https://codeload.github.com/theopolis/openbmc-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246989753,"owners_count":20865331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T20:34:42.406Z","updated_at":"2025-04-03T11:14:44.051Z","avatar_url":"https://github.com/theopolis.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenBMC\n\nOpenBMC is an open software framework to build a complete Linux image for a Board Management Controller (BMC).\n\nOpenBMC uses the [Yocto Project](https://www.yoctoproject.org) as the underlying building and distro generation framework.\n\n| Board | Status | Description |\n|-------|--------|-------------|\n[**Wedge**](https://code.facebook.com/posts/681382905244727/introducing-wedge-and-fboss-the-next-steps-toward-a-disaggregated-network/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildWedge/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildWedge/) | A 40G OS-agnostic TOR switch\n[**Yosemite**](https://code.facebook.com/posts/1616052405274961/introducing-yosemite-the-first-open-source-modular-chassis-for-high-powered-microservers-) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildYosemite/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildYosemite/) | An open source modular chassis for high-powered microservers\n[**Lightning**](https://code.facebook.com/posts/989638804458007/introducing-lightning-a-flexible-nvme-jbof/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildLightning/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildLightning/) | A flexible NVMe JBOF\n[**Wedge100**](https://code.facebook.com/posts/1802489260027439/wedge-100-more-open-and-versatile-than-ever/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildWedge100/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildWedge100/) | A 32x100G TOR switch\n[**Backpack LC/FC**](https://code.facebook.com/posts/864213503715814/introducing-backpack-our-second-generation-modular-open-switch/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildGalaxy100/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildGalaxy100/) | Linecard and fabric card in a 128x100G modular open switch\n[**Backpack CMM**](https://code.facebook.com/posts/864213503715814/introducing-backpack-our-second-generation-modular-open-switch/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildCMM/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildCMM/) | Chassis management module in a 128x100G modular open switch\n[**Tioga Pass**](https://code.facebook.com/posts/232534267210735/ocp-summit-2017-facebook-news-recap-/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildFBTP/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildFBTP/) | A dual-socket compute platform\n[**YosemiteV2**](https://code.facebook.com/posts/232534267210735/ocp-summit-2017-facebook-news-recap-/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildFBY2/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildFBY2/) | A refresh of Yosemite\n[**Bryce Canyon**](https://code.facebook.com/posts/1869788206569924/introducing-bryce-canyon-our-next-generation-storage-platform/) | [![Build Status](https://jenkins.osquery.io/job/openbmcHeliumBuildFBTTN/badge/icon)](https://jenkins.osquery.io/job/openbmcHeliumBuildFBTTN/) | Disk Storage platform\n\n## Contents\n\nThis repository includes 3 set of layers:\n\n* **OpenBMC Common Layer** - Common packages and recipes can be used in different types of BMC.\n* **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.\n* **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.\n\n## File structure\n\nThe 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`.\n\nThe recipes for OpenBMC common layer are found in `common`.\n\nThe 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.\n\n## How to build\n\nNote: In the instruction set below, references to \u003cplatform\u003e for some of the steps is an example only and need to be replaced with the respective platform when setting up for a different platform.\n\n1. Set up the build environment based on the Yocto Project's [Quick Start Guide](https://www.yoctoproject.org/docs/2.5/brief-yoctoprojectqs/brief-yoctoprojectqs.html).\n\n2. Clone the OpenBMC repository and other open source repositories:\n ```bash\n $ git clone -b helium https://github.com/facebook/openbmc.git\n $ cd openbmc\n $ ./sync_yocto.sh\n ```\n\n3. Initialize a build directory for the platform to build. In the `openbmc` directory:\n ```bash\n $ source openbmc-init-build-env meta-facebook/meta-wedge\n ```\n Choose between `meta-wedge`, `meta-wedge100`, `meta-yosemite`, or any of the other platforms listed in the meta-facebook directory.\n After this step, you will be dropped into a build directory, `openbmc/build`.\n\n4. Start the build within the build directory:\n In general to build for the platform:\n ```bash\n $ bitbake \u003cplatform\u003e-image\n ```\n The build process automatically fetches all necessary packages and builds the complete image. The final build results are in `openbmc/build/tmp/deploy/images/\u003cplatform\u003e`. The root password will be `0penBmc`, you may change this in the local configuration.\n\n## Build Artifacts\n\n* **u-boot.bin** - This is the u-boot image for the board.\n* **uImage** - This the Linux kernel for the board.\n* **\u003cplatform\u003e-image-\u003cplatform\u003e.cpio.lzma.u-boot** - This is the rootfs for the board\n* **flash-\u003cplatform\u003e** - This is the complete flash image including u-boot, kernel, and the rootfs.\n\n## Kernel \u0026 U-Boot Development\nBy default, OpenBMC build process fetches and build Linux kernel and U-boot directly from GitHub repository.\n- To make local kernel changes and build with the modified kernel:\n\nIn the build directory, run\n```\n$ devtool modify linux-aspeed\n```\nor\n```\n$ devtool modify u-boot\n```\nThis will create local Linux package under \u003cbuildir\u003e/workspace/sources/linux-aspeed  for development\n\n- To go back to default recipes, run\n```\n$ devtool reset linux-aspeed\n```\n\n## How can I contribute\n\nIf you have an application that can be used by different BMCs, you can contribute your application to the OpenBMC common layer.\n\nIf you are a BMC SoC vendor, you can contribute your SoC specific drivers to the BMC SoC layer.\n\nIf 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheopolis%2Fopenbmc-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheopolis%2Fopenbmc-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheopolis%2Fopenbmc-test/lists"}