Lesson1: Difference between revisions
Jump to navigation
Jump to search
MartinRoth (talk | contribs) (Created page with "coreboot lesson 1 - Starting from scratch From a fresh [http://releases.ubuntu.com/15.10/ubuntu-15.10-desktop-amd64.iso ubuntu 15.10 linux] install, here are all the steps re...") |
MartinRoth (talk | contribs) |
||
Line 14: | Line 14: | ||
build toolchain (This can take a significant amount of time) | build toolchain (This can take a significant amount of time) | ||
$ make crossgcc-i386 CPUS=$(nproc) | $ make crossgcc-i386 CPUS=$(nproc) | ||
Build the payload - coreinfo | |||
$ cd payloads/coreinfo | |||
$ make olddefconfig | |||
$ make | |||
configure mainboard to build coreboot | configure mainboard to build coreboot | ||
$ make menuconfig | $ make menuconfig | ||
select 'Mainboard' | select 'Mainboard' menu | ||
select 'Mainboard model' | 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 | ||
exit | exit | ||
yes | yes | ||
check your configuration: | check your configuration: | ||
$ make savedefconfig | $ make savedefconfig | ||
$ cat defconfig | $ cat defconfig | ||
There should only be | 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: | build coreboot: |
Revision as of 23:56, 1 December 2015
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.