Developers

Getting started

coreboot (formerly known as LinuxBIOS) believes in the principles of Open Source software. It borrows many well known concepts from other Open Source projects, like Kconfig, the Linux kernel coding style, a git repository, and gerrit for code reviews.

Traditional firmware development works with one-off shots for a given device. That is why you can still buy so many devices with buggy firmware. The bug was fixed a long time ago, just not in your copy of the tree. This won't happen to you with coreboot.

Get the source code (cannot push patches)

Clone the repository:

git clone https://review.coreboot.org/coreboot.git

Submiting patches

Once you created your Gerrit Review account, set up your gerrit http password and add it to your $HOME/.netrc file:

machine review.coreboot.org login YourUserNameHere password YourPasswordHere

Clone the repository:

git clone https://review.coreboot.org/coreboot.git

Setup all git hooks:

make gitconfig

You are now ready to start contributing code. Please read the sign-off procedure below, and welcome to the community.

Sign-off Procedure

The coreboot project employs a sign-off procedure similar to what is used by the Linux kernel. Each gerrit commit requires a sign-off line saying that the contributed code abides by the Developer's certificate of origin, below.

Signed-off-by: Random J Developer 

Using '-s' with 'git commit' will automatically add a Signed-off-by line to your commit message.
Patches without a Signed-off-by should not be pushed to gerrit, and will be rejected by coreboot's CI system.

You must use your real name in the Signed-off-by line. Patches without an associated real name cannot be committed!

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have
the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my
knowledge, is covered under an appropriate open source license and I have the
right under that license to submit that work with modifications, whether created
in whole or in part by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who
certified (a), (b) or (c) and I have not modified it; and

(d) In the case of each of (a), (b), or (c), I understand and agree that
this project and the contribution are public and that a record of the contribution
(including all personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with this project or the
open source license indicated in the file.
			
Note: The Developer's Certificate of Origin 1.1 is licensed under the terms of the Creative Commons Attribution-ShareAlike 2.5 License.

Additional information

coreboot architecture Gerrit Review guidelines Coding Style

Licenses

The coreboot project as a whole is licensed as GPLv2. The files within the codebase are licensed individually, with many files licensed as BSD, or GPLv2+. The libpayload subproject is licensed as BSD. All contributions to libpayload MUST be compatible with the BSD license.

Community and infrastructure

IRC IRC via Matrix Discord Mailing list Gerrit Review Bugtracker Jenkins CI Coverity Scan-build Calendar for events Code of Conduct 9elements QA System

How to start development

We carefully selected a list of hardware tools that will make dealing with coreboot a lot easier. Part of the process of choosing this hardware is that it either works with open source utilities, or we write Open Source utilities for it. These utilities make it easy to build and deploy coreboot in automated environments.

Tutorial

Our documentation contains a tutorial to get started. Part 1 shows how to build coreboot on your PC and run it on a QEMU virtual machine.

Go back to the main page