README.md 3.78 KB
Newer Older
Gunnar Mills's avatar
Gunnar Mills committed
1
# OpenBMC
Chris Smart's avatar
Chris Smart committed
2 3 4

[![Build Status](https://openpower.xyz/buildStatus/icon?job=openbmc-build)](https://openpower.xyz/job/openbmc-build/)

5 6 7
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
Gunnar Mills's avatar
Gunnar Mills committed
8 9 10 11 12
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.
13 14


Gunnar Mills's avatar
Gunnar Mills committed
15
## Setting up your OpenBMC project
16

17
### 1) Prerequisite
18
- Debian 9
19

20 21 22
```
sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat
```
23

Gunnar Mills's avatar
Gunnar Mills committed
24
### 2) Download the source
25 26 27 28
```
git clone git@github.com:openbmc/openbmc.git
cd openbmc
```
29

Gunnar Mills's avatar
Gunnar Mills committed
30
### 3) Target your hardware
31
Any build requires an environment variable known as `TEMPLATECONF` to be set
32
to a hardware target.
Gunnar Mills's avatar
Gunnar Mills committed
33
You can see all of the known targets with
34
`find meta-* -name local.conf.sample`. Choose the hardware target and
Gunnar Mills's avatar
Gunnar Mills committed
35 36
then move to the next step. Additional examples can be found in the
[OpenBMC Cheatsheet](https://github.com/openbmc/docs/blob/master/cheatsheet.md)
37 38 39

Machine | TEMPLATECONF
--------|---------
40
Talos II | ```meta-rcs/meta-talos/conf```
41 42


43
As an example target Talos II
44
```
45
export TEMPLATECONF=meta-rcs/meta-talos/conf
46 47
```

Gunnar Mills's avatar
Gunnar Mills committed
48
### 4) Build
49 50 51 52 53 54 55 56 57

```
. openbmc-env
bitbake obmc-phosphor-image
```

Additional details can be found in the [docs](https://github.com/openbmc/docs)
repository.

Gunnar Mills's avatar
Gunnar Mills committed
58 59
## Build Validation and Testing
Commits submitted by members of the OpenBMC GitHub community are compiled and
60 61 62
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
Gunnar Mills's avatar
Gunnar Mills committed
63
firmware image and run with an arm-softmmu QEMU model against a barrage of
64 65 66 67 68 69 70
[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
71 72 73 74
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).
75

Gunnar Mills's avatar
Gunnar Mills committed
76
## Submitting Patches
77
Support of additional hardware and software packages is always welcome.
78
Please follow the [contributing guidelines](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md)
79 80 81
when making a submission.  It is expected that contributions contain test
cases.

Gunnar Mills's avatar
Gunnar Mills committed
82
## Bug Reporting
83
[Issues](https://github.com/openbmc/openbmc/issues) are managed on
Gunnar Mills's avatar
Gunnar Mills committed
84
GitHub.  It is recommended you search through the issues before opening
85 86
a new one.

Gunnar Mills's avatar
Gunnar Mills committed
87
## Features of OpenBMC
88 89

**Feature List**
Joseph Reynolds's avatar
Joseph Reynolds committed
90 91
* Host management: Power, Cooling, LEDs, Inventory, Events, Watchdog
* Full IPMI 2.0 Compliance with DCMI
92
* Code Update Support for multiple BMC/BIOS images
Joseph Reynolds's avatar
Joseph Reynolds committed
93 94 95 96 97 98 99
* Web-based user interface
* REST interfaces
* D-Bus based interfaces
* SSH based SOL
* Remote KVM
* Hardware Simulation
* Automated Testing
Gunnar Mills's avatar
Gunnar Mills committed
100 101

**Features In Progress**
Joseph Reynolds's avatar
Joseph Reynolds committed
102 103 104
* OpenCompute Redfish Compliance
* User management
* Virtual media
105 106 107 108 109 110
* Verified Boot

**Features Requested but need help**
* OpenBMC performance monitoring


Gunnar Mills's avatar
Gunnar Mills committed
111
## Finding out more
Joseph Reynolds's avatar
Joseph Reynolds committed
112 113 114

Dive deeper into OpenBMC by opening the
[docs](https://github.com/openbmc/docs) repository.
115

Gunnar Mills's avatar
Gunnar Mills committed
116
## Contact
117
- Mail: openbmc@lists.ozlabs.org [https://lists.ozlabs.org/listinfo/openbmc](https://lists.ozlabs.org/listinfo/openbmc)
118 119
- IRC: #openbmc on freenode.net
- Riot: [#openbmc:matrix.org](https://riot.im/app/#/room/#openbmc:matrix.org)