diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 170 |
1 files changed, 36 insertions, 134 deletions
@@ -1,148 +1,50 @@ # OpenBMC -[![Build Status](https://openpower.xyz/buildStatus/icon?job=openbmc-build)](https://openpower.xyz/job/openbmc-build/) +![Build status](https://dev.azure.com/openbmc/OpenBMC/_apis/build/status/Intel-BMC.openbmc?branchName=intel "Build status") -The OpenBMC project can be described as a Linux distribution for embedded -devices that have a BMC; typically, but not limited to, things like servers, -top of rack switches or RAID appliances. The OpenBMC stack uses technologies -such as [Yocto](https://www.yoctoproject.org/), -[OpenEmbedded](https://www.openembedded.org/wiki/Main_Page), -[systemd](https://www.freedesktop.org/wiki/Software/systemd/), and -[D-Bus](https://www.freedesktop.org/wiki/Software/dbus/) to allow easy -customization for your server platform. +Intel-BMC/openbmc is a BMC implementation for servers. The purpose is to provide +early access to features and capabilities which have not yet been accepted or +merged in the OpenBMC main project (github.com/openbmc). In due course, all of +the capabilities here will be brought to the OpenBMC project. +Some answers to the main questions that tend to get asked: -## Setting up your OpenBMC project +### Does this mean that Intel is no longer contributing to the Linux foundation project? ### -### 1) Prerequisite -- Ubuntu 14.04 +No. This repo is for components that are intended for the eventual +release to the LF OpenBMC project. There are a number of reasons where things +might be checked in here. For example: functionality that is still under +discussion or in the LF OpenBMC project, features that have not gone through +the level of testing or integration needed to be included in the OpenBMC +project -``` -sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat -``` - -- Fedora 28 - -``` -sudo dnf install -y git patch diffstat texinfo chrpath SDL-devel bitbake \ - rpcgen perl-Thread-Queue perl-bignum perl-Crypt-OpenSSL-Bignum -sudo dnf groupinstall "C Development Tools and Libraries" -``` -### 2) Download the source -``` -git clone git@github.com:openbmc/openbmc.git -cd openbmc -``` +### Why does this repo exist at all? ### -### 3) Target your hardware -Any build requires an environment variable known as `TEMPLATECONF` to be set -to a hardware target. -You can see all of the known targets with -`find meta-* -name local.conf.sample`. Choose the hardware target and -then move to the next step. Additional examples can be found in the -[OpenBMC Cheatsheet](https://github.com/openbmc/docs/blob/master/cheatsheet.md) +Upstreaming changes to the linux kernel, uboot, systemd, yocto, and the various +projects that OpenBMC pulls in requires a significant effort. While we aspire +to that process being fast, painless, and with minimal rework, the reality is +far from that, and features or functions that require changes across a number +of repos require a coordinated effort, and a single source of function. As a +general rule, this repository loosens the requirements of "form over function" +and prefers to make some simplifying assumptions of BMC capabilities, chipsets, +and required features. -Machine | TEMPLATECONF ---------|--------- -Palmetto | ```meta-ibm/meta-palmetto/conf``` -Zaius| ```meta-ingrasys/meta-zaius/conf``` -Witherspoon| ```meta-ibm/meta-witherspoon/conf``` -Romulus| ```meta-ibm/meta-romulus/conf``` +### Can I upstream/release the code from this repository? ### +It very much depends on the component. While in general the answer ends up +being "yes", prior approval should be granted, as this repo contains future +facing capabilities that may not have been announced yet. Please email +openbmc@intel.com to discuss. Appropriate licenses will be applied to the +portions of this codebase that are approved for upstreaming. -As an example target Romulus -``` -export TEMPLATECONF=meta-ibm/meta-romulus/conf -``` +### Which platforms does this code work on? ### -### 4) Build +While the code is easily portable across different type of IA platforms, +currently we use Intel’s Wolf Pass (S2600WP) platform for development and most +testing. +### How to build for Wolf Pass ### +```bash +source oe-init-build-env +bitbake intel-platforms ``` -. openbmc-env -bitbake obmc-phosphor-image -``` - -Additional details can be found in the [docs](https://github.com/openbmc/docs) -repository. - -## OpenBMC Development - -The OpenBMC community maintains a set of tutorials new users can go through -to get up to speed on OpenBMC development out -[here](https://github.com/openbmc/docs/blob/master/development/README.md) - -## Build Validation and Testing -Commits submitted by members of the OpenBMC GitHub community are compiled and -tested via our [Jenkins](https://openpower.xyz/) server. Commits are run -through two levels of testing. At the repository level the makefile `make -check` directive is run. At the system level, the commit is built into a -firmware image and run with an arm-softmmu QEMU model against a barrage of -[CI tests](https://openpower.xyz/job/openbmc-test-qemu-ci/). - -Commits submitted by non-members do not automatically proceed through CI -testing. After visual inspection of the commit, a CI run can be manually -performed by the reviewer. - -Automated testing against the QEMU model along with supported systems are -performed. The OpenBMC project uses the -[Robot Framework](http://robotframework.org/) for all automation. Our -complete test repository can be found -[here](https://github.com/openbmc/openbmc-test-automation). - -## Submitting Patches -Support of additional hardware and software packages is always welcome. -Please follow the [contributing guidelines](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md) -when making a submission. It is expected that contributions contain test -cases. - -## Bug Reporting -[Issues](https://github.com/openbmc/openbmc/issues) are managed on -GitHub. It is recommended you search through the issues before opening -a new one. - -## Questions - -First, please do a search on the internet. There's a good chance your question -has already been asked. - -For general questions, please use the openbmc tag on -[Stack Overflow](https://stackoverflow.com/questions/tagged/openbmc). -Please review the [discussion](https://meta.stackexchange.com/questions/272956/a-new-code-license-the-mit-this-time-with-attribution-required?cb=1) -on Stack Overflow licensing before posting any code. - -For technical discussions, please see [contact info](#contact) below for IRC and -mailing list information. - -## Features of OpenBMC - -**Feature List** -* Host management: Power, Cooling, LEDs, Inventory, Events, Watchdog -* Full IPMI 2.0 Compliance with DCMI -* Code Update Support for multiple BMC/BIOS images -* Web-based user interface -* REST interfaces -* D-Bus based interfaces -* SSH based SOL -* Remote KVM -* Hardware Simulation -* Automated Testing - -**Features In Progress** -* OpenCompute Redfish Compliance -* User management -* Virtual media -* Verified Boot - -**Features Requested but need help** -* OpenBMC performance monitoring - - -## Finding out more - -Dive deeper into OpenBMC by opening the -[docs](https://github.com/openbmc/docs) repository. - -## Contact -- Mail: openbmc@lists.ozlabs.org [https://lists.ozlabs.org/listinfo/openbmc](https://lists.ozlabs.org/listinfo/openbmc) -- IRC: #openbmc on freenode.net -- Riot: [#openbmc:matrix.org](https://riot.im/app/#/room/#openbmc:matrix.org) |