1# OpenBMC 2 3[![Build Status](https://openpower.xyz/buildStatus/icon?job=openbmc-build)](https://openpower.xyz/job/openbmc-build/) 4 5The OpenBMC project can be described as a Linux distribution for embedded 6devices that have a BMC; typically, but not limited to, things like servers, 7top of rack switches or RAID appliances. The OpenBMC stack uses technologies 8such as [Yocto](https://www.yoctoproject.org/), 9[OpenEmbedded](https://www.openembedded.org/wiki/Main_Page), 10[systemd](https://www.freedesktop.org/wiki/Software/systemd/), and 11[D-Bus](https://www.freedesktop.org/wiki/Software/dbus/) to allow easy 12customization for your server platform. 13 14 15## Setting up your OpenBMC project 16 17### 1) Prerequisite 18- Ubuntu 14.04 19 20``` 21sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat 22``` 23 24- Fedora 28 25 26``` 27sudo dnf install -y git patch diffstat texinfo chrpath SDL-devel bitbake \ 28 rpcgen perl-Thread-Queue perl-bignum perl-Crypt-OpenSSL-Bignum 29sudo dnf groupinstall "C Development Tools and Libraries" 30``` 31### 2) Download the source 32``` 33git clone git@github.com:openbmc/openbmc.git 34cd openbmc 35``` 36 37### 3) Target your hardware 38Any build requires an environment set up according to your hardware target. 39There is a special script in the root of this repository that can be used 40to configure the environment as needed. The script is called `setup` and 41takes the name of your hardware target as an argument. 42 43The script needs to be sourced while in the top directory of the OpenBMC 44repository clone, and, if run without arguments, will display the list 45of supported hardware targets, see the following example: 46 47``` 48$ . setup <machine> [build_dir] 49Target machine must be specified. Use one of: 50 51centriq2400-rep nicole stardragon4800-rep2 52f0b olympus swift 53fp5280g2 olympus-nuvoton tiogapass 54gsj on5263m5 vesnin 55hr630 palmetto witherspoon 56hr855xg2 qemuarm witherspoon-128 57lanyang quanta-q71l witherspoon-tacoma 58mihawk rainier yosemitev2 59msn romulus zaius 60neptune s2600wf 61``` 62 63Once you know the target (e.g. romulus), source the `setup` script as follows: 64 65``` 66. setup romulus build 67``` 68 69For evb-ast2500, please use the below command to specify the machine config, 70because the machine in `meta-aspeed` layer is in a BSP layer and does not 71build the openbmc image. 72 73``` 74TEMPLATECONF=meta-evb/meta-evb-aspeed/meta-evb-ast2500/conf . openbmc-env 75``` 76 77### 4) Build 78 79``` 80bitbake obmc-phosphor-image 81``` 82 83Additional details can be found in the [docs](https://github.com/openbmc/docs) 84repository. 85 86## OpenBMC Development 87 88The OpenBMC community maintains a set of tutorials new users can go through 89to get up to speed on OpenBMC development out 90[here](https://github.com/openbmc/docs/blob/master/development/README.md) 91 92## Build Validation and Testing 93Commits submitted by members of the OpenBMC GitHub community are compiled and 94tested via our [Jenkins](https://jenkins.openbmc.org/) server. Commits are run 95through two levels of testing. At the repository level the makefile `make 96check` directive is run. At the system level, the commit is built into a 97firmware image and run with an arm-softmmu QEMU model against a barrage of 98[CI tests](https://openpower.xyz/job/openbmc-test-qemu-ci/). 99 100Commits submitted by non-members do not automatically proceed through CI 101testing. After visual inspection of the commit, a CI run can be manually 102performed by the reviewer. 103 104Automated testing against the QEMU model along with supported systems are 105performed. The OpenBMC project uses the 106[Robot Framework](http://robotframework.org/) for all automation. Our 107complete test repository can be found 108[here](https://github.com/openbmc/openbmc-test-automation). 109 110## Submitting Patches 111Support of additional hardware and software packages is always welcome. 112Please follow the [contributing guidelines](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md) 113when making a submission. It is expected that contributions contain test 114cases. 115 116## Bug Reporting 117[Issues](https://github.com/openbmc/openbmc/issues) are managed on 118GitHub. It is recommended you search through the issues before opening 119a new one. 120 121## Questions 122 123First, please do a search on the internet. There's a good chance your question 124has already been asked. 125 126For general questions, please use the openbmc tag on 127[Stack Overflow](https://stackoverflow.com/questions/tagged/openbmc). 128Please review the [discussion](https://meta.stackexchange.com/questions/272956/a-new-code-license-the-mit-this-time-with-attribution-required?cb=1) 129on Stack Overflow licensing before posting any code. 130 131For technical discussions, please see [contact info](#contact) below for 132Discord and mailing list information. Please don't file an issue to ask a 133question. You'll get faster results by using the mailing list or Discord. 134 135## Features of OpenBMC 136 137**Feature List** 138* Host management: Power, Cooling, LEDs, Inventory, Events, Watchdog 139* Full IPMI 2.0 Compliance with DCMI 140* Code Update Support for multiple BMC/BIOS images 141* Web-based user interface 142* REST interfaces 143* D-Bus based interfaces 144* SSH based SOL 145* Remote KVM 146* Hardware Simulation 147* Automated Testing 148* User management 149* Virtual media 150 151**Features In Progress** 152* OpenCompute Redfish Compliance 153* Verified Boot 154 155**Features Requested but need help** 156* OpenBMC performance monitoring 157 158 159## Finding out more 160 161Dive deeper into OpenBMC by opening the 162[docs](https://github.com/openbmc/docs) repository. 163 164## Technical Steering Committee 165 166The Technical Steering Committee (TSC) guides the project. Members are: 167 168 * Brad Bishop (chair), IBM 169 * Nancy Yuen, Google 170 * Sai Dasari, Facebook 171 * James Mihm, Intel 172 * Sagar Dharia, Microsoft 173 * Supreeth Venkatesh, Arm 174 175## Contact 176- Mail: openbmc@lists.ozlabs.org [https://lists.ozlabs.org/listinfo/openbmc](https://lists.ozlabs.org/listinfo/openbmc) 177- Discord: https://discord.gg/69Km47zH98 178 179