Creating bootable media for depthcharge based devices

Depthcharge, the ChromeOS bootloader, is one of coreboot’s (and also libreboot’s) available payloads and as such mostly found on chromebooks. This guide shows how to create bootable media, e.g. a installation media USB drive, for those devices.

Installing required tools
The guide assumes that the current platform is a Gentoo Linux one. The majority of steps however can be performed from any distribution, just translate the Gentoo-specific way of doing things (such as installing software) to the other distribution's practices.

Install, , and

Some drivers might also require proprietary firmware available from.

Preparing the partitions
Recommended partition layout and size:

Depthcharge requires some specific parameters to be set. These signal the bootloader the presence of a valid kernel partition:

Preparing the Root partition

Install a Gentoo rootfs
Get a stage 3 tarball from the main website's download section that is suitable for the architecture (e.g. ) of the target device and extract it to /mnt/

Switch the installation media’s Gentoo to unstable to ensure the availability of the latest versions of vboot-utils and u-boot-tools and speed up the installation media. Replace with the target device's architecture, e.g.  for ARMv7-A based devices.

Set the installation media’s root password to “gentoo”, cf. Setting the default root password

Finish this step by unmounting the install media’s rootfs

Create a cross-compiler
Create a local overlay for the cross toolchain, cf. Custom repository for crossdev:

Then instruct Portage and crossdev to use this overlay:

Install crossdev and create the cross toolchain. Replace with the system tuple fitting the target architecture, e.g.  for ARMv7-A based devices.

Replace with the target device's architecture, e.g.  for ARMv7-A based devices.

Replace with the system tuple fitting the target architecture, e.g.  for ARMv7-A based devices. Mind the trailing "-"!