diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 233 |
1 files changed, 75 insertions, 158 deletions
@@ -1,178 +1,95 @@ # OpenBMC -[![Build Status](https://openpower.xyz/buildStatus/icon?job=openbmc-build)](https://openpower.xyz/job/openbmc-build/) - -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. - - -## Setting up your OpenBMC project - -### 1) Prerequisite -- Ubuntu 14.04 - -``` -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 -``` - -### 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. - -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: - -``` -$ . setup <machine> [build_dir] -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 -``` - -Once you know the target (e.g. romulus), source the `setup` script as follows: - -``` -. setup romulus build -``` - -For evb-ast2500, please use the below command to specify the machine config, -because the machine in `meta-aspeed` layer is in a BSP layer and does not -build the openbmc image. - -``` -TEMPLATECONF=meta-evb/meta-evb-aspeed/meta-evb-ast2500/conf . openbmc-env -``` - -### 4) 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 ``` -bitbake obmc-phosphor-image +### How to build for Intel reference +```bash +export TEMPLATECONF=meta-openbmc-mods/meta-wht/conf +source oe-init-build-env +bitbake intel-platforms ``` -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://jenkins.openbmc.org/) 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 +### Default User Credentials -First, please do a search on the internet. There's a good chance your question -has already been asked. +To meet Intel security requirements, this OpenBMC implementation will not have +default user credentials enabled by default. -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. +IPMI commands are available to enable the root user for serial console access +and to enable users for IPMI, Redfish, and web access. -For technical discussions, please see [contact info](#contact) below for -Discord 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 Discord. +There is also a `"debug-tweaks"` feature that can be added to a build to +re-enable the default user credentials. -## Features of OpenBMC +#### Enable root user -**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 +Without `"debug-tweaks"`, the root user is disabled by default. -**Features In Progress** -* OpenCompute Redfish Compliance -* Verified Boot +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. -**Features Requested but need help** -* OpenBMC performance monitoring +IPMI OEM net function 0x30, command 0x5f. For root user, the first byte is +0 followed by the password. +For example, to enable the root user with password `0penBmc1`: -## Finding out more +```ipmitool raw 0x30 0x5f 0x00 0x30 0x70 0x65 0x6e 0x42 0x6d 0x63 0x31``` -Dive deeper into OpenBMC by opening the -[docs](https://github.com/openbmc/docs) repository. +#### Enable IPMI, Redfish, and web users -## Technical Steering Committee +Without `"debug-tweaks"`, there are no IPMI, Redfish, or web users by default. -The Technical Steering Committee (TSC) guides the project. Members are: +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. - * Brad Bishop (chair), IBM - * Nancy Yuen, Google - * Sai Dasari, Facebook - * James Mihm, Intel - * Sagar Dharia, Microsoft - * Supreeth Venkatesh, Arm +#### debug-tweaks -## Contact -- Mail: openbmc@lists.ozlabs.org [https://lists.ozlabs.org/listinfo/openbmc](https://lists.ozlabs.org/listinfo/openbmc) -- Discord: https://discord.gg/69Km47zH98 +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: +```EXTRA_IMAGE_FEATURES += "debug-tweaks"``` |