diff options
-rw-r--r-- | docs/getting_started_quickly.md | 129 | ||||
-rw-r--r-- | navbar.md | 1 |
2 files changed, 130 insertions, 0 deletions
diff --git a/docs/getting_started_quickly.md b/docs/getting_started_quickly.md new file mode 100644 index 0000000000..9b22dc64c7 --- /dev/null +++ b/docs/getting_started_quickly.md @@ -0,0 +1,129 @@ +# Get Started Building EC Images (Quickly) + +[TOC] + +The +[Chromium OS Developer Guide](https://chromium.googlesource.com/chromiumos/docs/+/master/developer_guide.md) +and [README](../README.md) walk through the steps needed to fetch and build +Chromium OS source. These steps can be followed to retrieve and build EC source +as well. On the other hand, if your sole interest is building an EC image, the +general developer guide contains some extra unneeded steps. + +The fastest possible way to build an EC image is to skip the Chromium OS chroot +install entirely. The following steps have been tested on an Ubuntu 15.10 (Wily +Werewolf) 64-bit host machine. Other distros / versions may be used, but +toolchain incompatibilities may require extra debug. + +## Building + +1. Install build / dev tools: + + ```bash + sudo apt-get install git libftdi-dev libusb-dev libncurses5-dev gcc-arm-none-eabi + ``` + +1. Sync the cros-ec git repo: + + ```bash + git clone https://chromium.googlesource.com/chromiumos/platform/ec + ``` + +1. Build your EC image: + + ```bash + HOSTCC=x86_64-linux-gnu-gcc make BOARD=$board + ``` + +## External Dependencies + +Most boards are buildable, but some will fail due to dependencies on external +binaries (such as [`futility`](#building-futility)). Also, some related tools +(such as `flash_ec` and `servod`) must be run from the Chromium OS chroot. Here +is a set of steps to setup a minimal development environment to build EC images +from the Chromium OS chroot: + +1. Create a folder for your chroot: + + ```bash + mkdir cros-src; cd cros-src + ``` + +1. Run + + ```bash + repo init -u https://chromium.googlesource.com/chromiumos/manifest.git --repo-url https://chromium.googlesource.com/external/repo.git -g minilayout + ``` + +1. Edit `.repo/manifest.xml`, and add `groups="minilayout"` to the platform/ec + project, so the line becomes: + + ``` + <project path="src/platform/ec" name="chromiumos/platform/ec" groups="minilayout" /> + ``` + +1. Run `repo sync`: + + ```bash + repo sync -j <number of cores on your workstatsion> + ``` + +1. Enter the chroot and enter your password for `sudo` if prompted: + + ```bash + ./chromite/bin/cros_sdk + ``` + +1. Set up your board: + + ```bash + ./setup_board --board=$BOARD + ``` + + (ex. `./setup_board --board=glados`) + +1. Build EC: + + ```bash + ./build_packages --board=$BOARD chromeos-ec + ``` + +1. Now, EC images for any board can be built with: + + ```bash + cd ~/trunk/src/platform/ec; make BOARD=$board -j + ``` + +## Building `futility` outside the chroot {#building-futility} + +If you want to build the `futility` host tool outside the normal Chrome OS +chroot self-contained environment, you can try the following + +1. Install futility build dependencies: + + ```bash + sudo apt-get install uuid-dev liblzma-dev libyaml-dev libssl-dev + ``` + +1. Get the vboot reference sources: + + ```bash + git clone https://chromium.googlesource.com/chromiumos/platform/vboot_reference + ``` + +1. Build it: + + ```bash + cd vboot_reference ; make + ``` + +1. Install it in `/usr/local/bin`: + + ```bash + sudo make install + ``` + +1. Add `/usr/local/bin` to your default `PATH`: + + ```bash + export PATH="${PATH}:/usr/local/bin" + ``` @@ -4,4 +4,5 @@ * [Home][home] * [Sitemap](/docs) +* [Getting Started Quickly](/docs/getting_started_quickly.md) * [Chromium OS Docs](https://chromium.googlesource.com/chromiumos/docs/+/master/README.md) |