Lesson1

From coreboot
Jump to navigation Jump to search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

coreboot lesson 1 - Starting from scratch

From a fresh ubuntu 15.10 linux install, here are all the steps required:

Download, configure, and build coreboot

Install tools and libraries needed for coreboot

$ sudo apt-get install git-core libncurses5-dev m4 bison flex

Download coreboot source tree:

$ git clone http://review.coreboot.org/coreboot
$ cd coreboot

build toolchain (This can take a significant amount of time)

$ make crossgcc-i386 CPUS=$(nproc)

Build the payload - coreinfo

$ cd payloads/coreinfo
$ make olddefconfig
$ make

configure mainboard to build coreboot

$ make menuconfig
   select 'Mainboard' menu
   select 'Mainboard model'
   choose 'QEMU x86 i440fx/piix4'
   exit b
   select 'Payload' menu
   select 'Add a Payload'
   choose 'An Elf executable payload'
   select 'Payload path and filename'
   enter 'payloads/coreinfo/build/coreinfo.elf'
   exit
   exit
   yes

check your configuration:

$ make savedefconfig
$ cat defconfig

There should only be three lines:

CONFIG_BOARD_EMULATION_QEMU_X86_I440FX=y
CONFIG_PAYLOAD_ELF=y
CONFIG_PAYLOAD_FILE="payloads/coreinfo/build/coreinfo.elf"

build coreboot:

$ make

Test the image using QEMU

Install QEMU

$ sudo apt-get install qemu

Download and decompress a disk image:

$ wget http://wiki.qemu.org/download/linux-0.2.img.bz2
$ bunzip2 linux-0.2.img.bz2

Start QEMU:

$ qemu-system-x86_64 -bios build/coreboot.rom -hda linux-0.2.img -serial stdio

You should see the serial output of coreboot in the original console window, and a new window will appear with the linux image that was downloaded running in it.