Working with your Overlay FAQ

Basics / Workflow

What is a board? What is an overlay? What is an ebuild? What is a bsp?

Basic terms and concepts

I made changes to my board's bsp but build_packages/build_image didn't pick them up.

After you make a change to the bsp, you need to either uprev or re-emerge it for build_packages/build_image to pick up the changes. (We realize this isn't ideal: See http://crbug.com/391962)


How do I push changes that I made to my app to my developer device?

Use cros deploy


Packages

My app depends and uses a third party library. How do I tell the build system to do that?

First, check if the third party library is already available as a Gentoo package under src/third_party/portage-stable or src/third_party/chromiumos-overlay.


If yes, then just add the package name to the DEPEND (if build-time dependency) and/or RDEPEND (if run-time dependency) of your app's ebuild.

How do I add additional packages to my target <board>?

Add it as an RDEPEND to chromeos-base/chromeos-bsp/chromeos-bsp-<board>.ebuild in your overlay.

Example BSP that pulls in peerd and bash on the target.


Startup / Boot

How do I make my program/service automatically start on boot?

CrOS uses the upstart system to manage boot and service startup. Simply add an upstart job for your service and install it into /etc/init


Example upstart script: link


Should my upstart job depend upon boot-services or system-services?

system-services, unless your job in the critical boot path (e.g. network driver setup), in which case boot-services is appropriate.


The following additional resources go into more detail:

More information

Boot system design
Comments