diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index bb087629f9..8d8c2ae33e 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml @@ -20,19 +20,194 @@
- Place-Holder Section One + Place-Holder Section for Development in General Text needed here. -
-
- Place-Holder Section Two +
+ Developing a Board Support Package (BSP) - - Text needed here. - + + A BSP is a package of recipes that when applied while building an image results in + an image you can run on a particular board. + Thus, the package, when compiled into the new image, supports the operation of the board. + + + + For a brief list of terms used when describing the development process in the Yocto Project, + see Yocto Project Terms in this manual. + + + + The remainder of this section presents the basic steps to create a BSP basing it on an + existing BSP that ships with the Yocto Project. + You can reference BSP Development Case + for a detailed example that uses the Crown Bay BSP as a base BSP from which to start. + + + + Here are the basic steps involved in creating a BSP: + + Set up your host development system to support + development using the Yocto Project: See + + The Linux Distributions section and + + The Packages section both + in the Yocto Project Quick Start for requirements. + You will also need a release of Yocto Project installed on the host. + Establish a local copy of the Yocto Project files on your + system: You need to have the Yocto Project files available on your host system. + Having the Yocto Project files on your system gives you access to the build + process and tools you need. + For information on how to get these files, see the + Getting Setup section in this manual. + Choose a Yocto Project-supported BSP as your base BSP: + The Yocto Project ships with several BSPs that support various hardware. + It is best to base your new BSP on an existing BSP rather than create all the + recipes and configuration files from scratch. + While it is possible to create everything from scratch, basing your new BSP + on something that is close is much easier. + Or, at a minimum, it gives you some structure with which to start. + At this point you need to understand your target hardware well enough to determine which + existing BSP it most closely matches. + Things to consider are your hardware’s on-board features such as CPU type and graphics support. + You should look at the README files for supported BSPs to get an idea of which one + you could use. + A generic Atom-based BSP to consider is the Crown Bay that does not support + the Intel® Embedded Media Graphics Driver (EMGD). + The remainder of this example uses that base BSP. + To see the supported BSPs, go to the Yocto Project + download page and click + on “BSP Downloads.” + Establish a local copy of the base BSP files: Having + the BSP files on your system gives you access to the build + process and tools you need. + For information on how to get these files, see + Getting Setup earlier in this manual. + Create your own BSP layer: Layers are ideal for + isolating and storing work for a given piece of hardware. + A layer is really just a location or area in which you place the recipes for your BSP. + In fact, a BSP is, in itself, a special type of layer. + Consider an application as another example that illustrates a layer. + Suppose you are creating an application that has library or other dependencies in + order for it to compile and run. + The layer, in this case, would be where all the recipes that define those dependencies + are kept. The key point for a layer is that it is an isolated area that contains + all the relevant information for the project that the Yocto Project build + system knows about. + The Yocto Project supports four BSPs that are part of the + Yocto Project release: atom-pc, beagleboard, + mpc8315e, and routerstationpro. + The recipes and configurations for these four BSPs are located and dispersed + within local Yocto Project files. + Consequently, they are not totally isolated in the spirit of layers unless you think + of meta-yocto as a layer itself. + On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest, + N450, and Sugar Bay are isolated. + When you set up a layer for a new BSP you should follow a standard layout. + This layout is described in the + + Example Filesystem Layout section of the Board Support Package (BSP) Development + Guide. + In the standard layout you will notice a suggested structure for recipes and + configuration information. + You can see the standard layout for the Crown Bay BSP in this example by examining the + directory structure of the meta-crownbay layer inside the + local Yocto Project files. + Make configuration and recipe changes to your new BSP + layer: The standard BSP layer structure organizes the files you need to edit in + conf and several recipes-* within the + BSP layer. + Configuration changes identify where your new layer is on the local system + and identify which kernel you are going to use. + Recipe changes include altering recipes (.bb files), removing + recipes you don't use, and adding new recipes that you need to support your hardware. + + Prepare for the build: Once you have made all the + changes to your BSP layer there remains a few things + you need to do for the Yocto Project build system in order for it to create your image. + You need to get the build environment ready by sourcing an environment setup script + and you need to be sure two key configuration files are configured appropriately. + The entire process for building an image is overviewed in the + + Building an Image section of the Yocto Project Quick Start. + You might want to reference this information. + Build the image: The Yocto Project uses the BitBake + tool to build images based on the type of image + you want to create. + You can find more information on BitBake + here. + The build process supports several types of images to satisfy different needs. + When you issue the BitBake command you provide a “top-level” recipe that essentially + starts the process off of building the type of image you want. + [WRITER'S NOTE: Consider moving this to the Poky Reference Manual.] + You can find these recipes in the meta/recipes-core/images and + meta/recipes-sato/images directories of your local Yocto Project + file structure (Git repository or extracted release tarball). + Although the recipe names are somewhat explanatory, here is a list that describes them: + + Base – A foundational basic image without support + for X that can be reasonably used for customization. + Core – A foundational basic image with support for + X that can be reasonably used for customization. + Direct Disk – An image that you can copy directory to + the disk of the target device. + Live – An image you can run from a USB device or from + a CD without having to first install something. + Minimal – A small image without a GUI. + This image is not much more than a kernel with a shell. + Minimal Development – A Minimal image suitable for + development work. + Minimal Direct Disk – A Minimal Direct + Disk image. + Minimal RAM-based Initial Root Filesystem – + A minimal image + that has the initramfs as part of the kernel, which allows the + system to find the first “init” program more efficiently. + Minimal Live – A Minimal Live image. + Minimal MTD Utilities – A minimal image that has support + for the MTD utilities, which let the user interact with the MTD subsystem in + the kernel to perform operations on flash devices. + Sato – An image with Sato support, a mobile environment + and visual style that works well with mobile devices. + Sato Development – A Sato image suitable for + development work. + Sato Direct Disk – A Sato Direct + Disk image. + Sato Live – A Sato Live image. + Sato SDK – A Sato image that includes the Yocto Project + toolchain and development libraries. + Sato SDK Direct Disk – A Sato SDK Direct + Disk image. + Sato SDK Live – A Sato SDK Live + image. + + + + + + + You can view a video presentation of the BSP creation process + here. + You can also find supplemental information in the + + Board Support Package (BSP) Development Guide. + Finally, there is wiki page write up of the example located + + here you might find helpful. + +
+ +
+ Place-Holder Section For Application Development + + + Text needed here. + +