diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 221 |
1 files changed, 77 insertions, 144 deletions
@@ -1,160 +1,93 @@ # 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") + +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: + +### Does this mean that Intel is no longer contributing to the Linux foundation project? + +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 + +### Why does this repo exist at all? + +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. + +### 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. + +### How to build for Wolf Pass +```bash +export TEMPLATECONF=meta-openbmc-mods/meta-wolfpass/conf +source oe-init-build-env +bitbake intel-platforms +``` +### How to build for Intel reference +```bash +export TEMPLATECONF=meta-openbmc-mods/meta-wht/conf +source oe-init-build-env +bitbake intel-platforms +``` -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. +### Default User Credentials +To meet Intel security requirements, this OpenBMC implementation will not have +default user credentials enabled by default. -## Setting up your OpenBMC project +IPMI commands are available to enable the root user for serial console access +and to enable users for IPMI, Redfish, and web access. -### 1) Prerequisite -- Ubuntu 14.04 +There is also a `"debug-tweaks"` feature that can be added to a build to +re-enable the default user credentials. -``` -sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat -``` +#### Enable root user -- Fedora 28 +Without `"debug-tweaks"`, the root user is disabled by default. -``` -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 -``` +The following IPMI command can be used to enable the root user. This root +user allows access to the BMC serial console, but cannot be used to access +IPMI, Redfish, or the web console. -### 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) +IPMI OEM net function 0x30, command 0x5f. For root user, the first byte is +0 followed by the password. -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``` +For example, to enable the root user with password `0penBmc1`: +```ipmitool raw 0x30 0x5f 0x00 0x30 0x70 0x65 0x6e 0x42 0x6d 0x63 0x31``` -As an example target Romulus -``` -export TEMPLATECONF=meta-ibm/meta-romulus/conf -``` +#### Enable IPMI, Redfish, and web users -### 4) Build +Without `"debug-tweaks"`, there are no IPMI, Redfish, or web users by default. -``` -. openbmc-env -bitbake obmc-phosphor-image -``` +The standard IPMI commands to set usernames and passwords are supported. +These users allow access to IPMI, Redfish, and the web console, but cannot be +used to access the BMC serial console. + +#### debug-tweaks + +Debug features, including the default user credentials, can be enabled by +adding the `"debug-tweaks"` feature to the build by including the following +in your `local.conf` file: -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. Please don't file an issue to ask a question. You'll -get faster results by using the mailing list or IRC. - -## 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 -* User management -* Virtual media - -**Features In Progress** -* OpenCompute Redfish Compliance -* 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. - -## Technical Steering Committee - -The Technical Steering Committee (TSC) guides the project. Members are: - - * Brad Bishop (chair), IBM - * Nancy Yuen, Google - * Sai Dasari, Facebook - * James Mihm, Intel - * Sagar Dharia, Microsoft - * Supreeth Venkatesh, Arm - -## 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) +```EXTRA_IMAGE_FEATURES += "debug-tweaks"``` |