diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 231 |
1 files changed, 78 insertions, 153 deletions
@@ -1,170 +1,95 @@ # 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. + +For questions or support please email OpenBMC.Support@intel.com. + +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.Support@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 set up according to your hardware target. -There is a special script in the root of this repository that can be used -to configure the environment as needed. The script is called `setup` and -takes the name of your hardware target as an argument. +IPMI OEM net function 0x30, command 0x5f. For root user, the first byte is +0 followed by the password. -The script needs to be sourced while in the top directory of the OpenBMC -repository clone, and, if run without arguments, will display the list -of supported hardware targets, see the following example: +For example, to enable the root user with password `0penBmc1`: -``` -$ . setup -Target machine must be specified. Use one of: - -centriq2400-rep nicole stardragon4800-rep2 -f0b olympus swift -fp5280g2 olympus-nuvoton tiogapass -gsj on5263m5 vesnin -hr630 palmetto witherspoon -hr855xg2 qemuarm witherspoon-128 -lanyang quanta-q71l witherspoon-tacoma -mihawk rainier yosemitev2 -msn romulus zaius -neptune s2600wf -``` +```ipmitool raw 0x30 0x5f 0x00 0x30 0x70 0x65 0x6e 0x42 0x6d 0x63 0x31``` -Once you know the target (e.g. romulus), source the `setup` script as follows: +#### Enable IPMI, Redfish, and web users -``` -. setup romulus -``` +Without `"debug-tweaks"`, there are no IPMI, Redfish, or web users by default. -### 4) Build +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. -``` -bitbake obmc-phosphor-image -``` +#### 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"``` |