From 5aa043b800e85c61a93c386956eb4ac23daa91fb Mon Sep 17 00:00:00 2001 From: Patrik Tesarik Date: Fri, 3 Jan 2020 16:01:00 +0100 Subject: 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38225 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held --- Documentation/tutorial/part1.md | 47 +++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/Documentation/tutorial/part1.md b/Documentation/tutorial/part1.md index 48145c2dc319..0c7ef67cbbc4 100644 --- a/Documentation/tutorial/part1.md +++ b/Documentation/tutorial/part1.md @@ -1,14 +1,18 @@ Tutorial, part 1: Starting from scratch =========================================== -From a fresh Ubuntu 16.04 or 18.04 install, here are all the steps required for -a very basic build: +This tutorial will guide you through the process of setting up a working +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 --------------------------------------- ### 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 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 $ git clone https://review.coreboot.org/coreboot @@ -78,6 +82,8 @@ Test the image using QEMU ### Step 7 - Install QEMU $ sudo apt-get install -y qemu + $ sudo pacman -S qemu + $ sudo dnf install qemu ### Step 8 - Run QEMU 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 -You installed the minimum additional requirements for ubuntu to download and -build coreboot. Ubuntu already has most of the other tools that would be -required installed by default. +Depending on your distribution you have installed the minimum additional +software requirements to continue with downloading and building coreboot. +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 -on some Ubuntu flavors, and not on others. +* `build-essential` or `base-devel` are the basic tools for building software. * `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` are needed to build the coreboot toolchain. `gcc` and `gnat` have to be of the same version. -If you started with a different distribution, you might need to install many -other items which vary by distribution. +If you started with a different distribution or package management system you +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 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 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 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 -user to look at various things such as memory and the contents of coreboot's -cbfs - the pieces that make up the coreboot rom. +user to look at various things such as memory and the contents of the coreboot +file system (CBFS) - the pieces that make up the coreboot rom. ### Step 5 summary - Configure the build 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. ### 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 -Here's the command line broken down: +Here's the command line instruction broken down: * `qemu-system-x86_64` This starts the QEMU emulator with the i440FX host PCI bridge and PIIX3 PCI to ISA bridge. * `-bios build/coreboot.rom` -Use the bios rom image that we just built. If this is left off, the standard -SeaBIOS image that comes with QEMU is used. +Use the bios rom image that we just built. If this flag is left out, the +standard SeaBIOS image that comes with QEMU is used. * `-serial stdio` Send the serial output to the console. This allows you to view the coreboot -debug output. +boot log. -- cgit v1.2.3