Skip to content

Newcomers

If you are new to Dasharo, this section is to help you get started using Dasharo firmware and possibly contributing to making it better.

coreboot

If you have no prior experience with coreboot, it's highly recommended to visit OpenSecurityTraining2 and finish these courses:

OpenSecurityTraining2 provides other great courses related to firmware, which are all freely available here.

Docker

coreboot needs a specific toolchain to be built, hence why it is usually built inside of a Docker. In case of Dasharo, all images are built using Docker, so you will make sure it works properly on your system.

Follow these two links:

Once you have Docker set up on your machine, you can pull docker images from coreboot/coreboot-sdk (keep in mind that some platforms require older docker images).

To pull a Docker image, use:

docker pull coreboot/coreboot-sdk:<tag>

The typical procedure to build a coreboot image is as follows:

git clone https://github.com/Dasharo/coreboot.git
cd coreboot
git checkout <platform>/release
docker run -u $UID --rm -it \
-v $PWD:/home/coreboot/coreboot
-w /home/coreboot/coreboot coreboot/coreboot-sdk:<tag>\
bash
cp configs/config.<platform> .config
make olddefconfig
make

Dasharo Contribution

All code review and all issues related to Dasharo are resolved on GitHub. An account there is necessary to contribute and report issues. All Dasharo repositories can be found here.

When you have an account on GitHub go ahead and configure an SSH key. It's also highly recommended to configure a GPG key before contributing anything. Instructions to do that can be found here. With that your account should be ready to contribute to Dasharo.

Since Dasharo is based on coreboot and edk2, it's best to contribute directly in the upstream if possible. Refer to these documents:

If for some reason you can't contribute your change in upstream repositories, then consider contributing directly to Dasharo. Before doing anything it's best to get familiar with source code structure. To create a patch:

  1. fork the repository which you want to edit,
  2. in the forked repository: git checkout <platform>/develop (make sure to start from the correct branch),
  3. create a new branch: git checkout -b <platform>/<feature>,
  4. commit your changes:
    • make sure to sign your commits by using git commit -sm "<commit_message>",
    • <commit_message> should be: path/to/file: Change description,
    • one commit should be one logical change,
  5. create a pull request from a fork.

Do not forget to check whether patch has been reviewed and changes to your contribution (PR) are needed. If so, remember about answering to each addressed thread with information about change in the commit

  • template: Fixed: <link to commit>
  • example: Fixed 0a2a4ee

Dasharo Matrix Space

Matrix is a communicator used at Dasharo. If you want quick answers it's best to join our matrix space and talk to us there.

Dasharo Matrix Space

If you've never used Matrix before, you will first need to get a client. Available clients are listed here.