doc/tutorial/part1.md: Add commands for yum- & pacman-based distro

* Add additional information on non-debian cli tools
* Improve spellings and descriptions to the best of my knowledge

Adding info about needed tools in other distribution's package
managers was requested at the coreboot beginner's workshop at 36C3.

Change-Id: Ifff3c8354b4bec9f195f075eb6b2f377195fc237
Signed-off-by: Patrik Tesarik <mail@patrik-tesarik.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38225
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Patrik Tesarik 2020-01-03 16:01:00 +01:00 committed by Felix Held
parent 5a62427e14
commit 5aa043b800
1 changed files with 29 additions and 18 deletions

View File

@ -1,14 +1,18 @@
Tutorial, part 1: Starting from scratch Tutorial, part 1: Starting from scratch
=========================================== ===========================================
From a fresh Ubuntu 16.04 or 18.04 install, here are all the steps required for This tutorial will guide you through the process of setting up a working
a very basic build: coreboot toolchain. In same cases you will find specific instructions for Debian (apt-get),
Fedora (dnf) and Arch Linux (pacman) based package management systems. Use the
instructions according to your system.
Download, configure, and build coreboot Download, configure, and build coreboot
--------------------------------------- ---------------------------------------
### Step 1 - Install tools and libraries needed for coreboot ### Step 1 - Install tools and libraries needed for coreboot
$ sudo apt-get install -y bison build-essential curl flex git gnat libncurses5-dev m4 zlib1g-dev $ sudo apt-get install -y bison build-essential curl flex git gnat libncurses5-dev m4 zlib1g-dev
$ sudo pacman -S base-devel curl git gcc-ada ncurses zlib
$ sudo dnf install git make gcc-gnat flex bison xz bzip2 gcc g++ ncurses-devel wget zlib-devel
### Step 2 - Download coreboot source tree ### Step 2 - Download coreboot source tree
$ git clone https://review.coreboot.org/coreboot $ git clone https://review.coreboot.org/coreboot
@ -78,6 +82,8 @@ Test the image using QEMU
### Step 7 - Install QEMU ### Step 7 - Install QEMU
$ sudo apt-get install -y qemu $ sudo apt-get install -y qemu
$ sudo pacman -S qemu
$ sudo dnf install qemu
### Step 8 - Run QEMU ### Step 8 - Run QEMU
Start QEMU, and point it to the ROM you just built: Start QEMU, and point it to the ROM you just built:
@ -91,20 +97,24 @@ Summary
------- -------
### Step 1 summary - Install tools and libraries needed for coreboot ### Step 1 summary - Install tools and libraries needed for coreboot
You installed the minimum additional requirements for ubuntu to download and Depending on your distribution you have installed the minimum additional
build coreboot. Ubuntu already has most of the other tools that would be software requirements to continue with downloading and building coreboot.
required installed by default. Not every distribution has the tools, that would be required,
installed by default. In the following we shortly introduce the purpose of the
installed packages:
* `build-essential` is the basic tools for doing builds. It comes pre-installed * `build-essential` or `base-devel` are the basic tools for building software.
on some Ubuntu flavors, and not on others.
* `git` is needed to download coreboot from the coreboot git repository. * `git` is needed to download coreboot from the coreboot git repository.
* `libncurses5-dev` is needed to build the menu for 'make menuconfig' * `libncurses5-dev` or `ncurses` is needed to build the menu for 'make menuconfig'
* `m4, bison, curl, flex, zlib1g-dev, gcc, gnat` and `g++` or `clang` * `m4, bison, curl, flex, zlib1g-dev, gcc, gnat` and `g++` or `clang`
are needed to build the coreboot toolchain. `gcc` and `gnat` have to be are needed to build the coreboot toolchain. `gcc` and `gnat` have to be
of the same version. of the same version.
If you started with a different distribution, you might need to install many If you started with a different distribution or package management system you
other items which vary by distribution. might need to install other packages. Most likely they are named sightly
different. If that is the case for you, we'd like to encourage you to contribute
to the project and submit a pull request with an update for this documentation
for your system.
### Step 2 summary - Download coreboot source tree ### Step 2 summary - Download coreboot source tree
This will download a 'read-only' copy of the coreboot tree. This just means This will download a 'read-only' copy of the coreboot tree. This just means
@ -124,12 +134,12 @@ system during the build process.
### Step 4 summary - Build the payload ### Step 4 summary - Build the payload
To actually do anything useful with coreboot, you need to build a payload to To actually do anything useful with coreboot, you need to build a payload to
include in the rom. The idea behind coreboot is that it does the minimum amount include into the rom. The idea behind coreboot is that it does the minimum amount
possible before passing control of the machine to a payload. There are various possible before passing control of the machine to a payload. There are various
payloads such as grub or SeaBIOS that are typically used to boot the operating payloads such as grub or SeaBIOS that are typically used to boot the operating
system. Instead, we used coreinfo, a small demonstration payload that allows the system. Instead, we used coreinfo, a small demonstration payload that allows the
user to look at various things such as memory and the contents of coreboot's user to look at various things such as memory and the contents of the coreboot
cbfs - the pieces that make up the coreboot rom. file system (CBFS) - the pieces that make up the coreboot rom.
### Step 5 summary - Configure the build ### Step 5 summary - Configure the build
This step configures coreboot's build options using the menuconfig interface to This step configures coreboot's build options using the menuconfig interface to
@ -154,16 +164,17 @@ build directory as 'coreboot.rom'. At the end of the build process, the build
displayed the contents of the rom file. displayed the contents of the rom file.
### Step 7 summary - Install QEMU ### Step 7 summary - Install QEMU
QEMU is a processor emulator which we can use to show coreboot QEMU is a processor emulator which we can use to show the coreboot boot
process in a virtualised environment.
### Step 8 summary - Run QEMU ### Step 8 summary - Run QEMU
Here's the command line broken down: Here's the command line instruction broken down:
* `qemu-system-x86_64` * `qemu-system-x86_64`
This starts the QEMU emulator with the i440FX host PCI bridge and PIIX3 PCI to This starts the QEMU emulator with the i440FX host PCI bridge and PIIX3 PCI to
ISA bridge. ISA bridge.
* `-bios build/coreboot.rom` * `-bios build/coreboot.rom`
Use the bios rom image that we just built. If this is left off, the standard Use the bios rom image that we just built. If this flag is left out, the
SeaBIOS image that comes with QEMU is used. standard SeaBIOS image that comes with QEMU is used.
* `-serial stdio` * `-serial stdio`
Send the serial output to the console. This allows you to view the coreboot Send the serial output to the console. This allows you to view the coreboot
debug output. boot log.