diff options
| author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2011-07-27 12:59:10 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-08-04 15:06:47 +0100 |
| commit | 05b0b88882269d55d8229c98f7cac20a67ef149a (patch) | |
| tree | 4df91899539069fe04fe536ba619d8ce7ba9399c /documentation | |
| parent | 4737719dc196f98aef768fd814c96adfe1069759 (diff) | |
| download | poky-05b0b88882269d55d8229c98f7cac20a67ef149a.tar.gz | |
documentation/dev-manual/dev-manual-cases.xml: removed BSP overview.
this is now in the model chapter. Eventually the cases chapter
will disappear.
(From yocto-docs rev: fde20eede9f04899b61742b05ce73c97b2737bf3)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
| -rw-r--r-- | documentation/dev-manual/dev-manual-cases.xml | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/documentation/dev-manual/dev-manual-cases.xml b/documentation/dev-manual/dev-manual-cases.xml index ebc8eeca1e..fc93b53744 100644 --- a/documentation/dev-manual/dev-manual-cases.xml +++ b/documentation/dev-manual/dev-manual-cases.xml | |||
| @@ -5,219 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | <title>Development Cases</title> | 6 | <title>Development Cases</title> |
| 7 | 7 | ||
| 8 | <para> | ||
| 9 | Many development cases exist for which you can use the Yocto Project. | ||
| 10 | However, for the purposes of this manual we are going to focus on two common development cases or groupings: | ||
| 11 | System Development and User Application Development. | ||
| 12 | System Development covers Board Support Package (BSP) development and kernel modification. | ||
| 13 | User Application Development covers development of applications that you intend to run on some | ||
| 14 | target hardware. | ||
| 15 | </para> | ||
| 16 | |||
| 17 | <para> | ||
| 18 | This chapter presents an overview of the primary cases. | ||
| 19 | Supsequent appendices in the manual provide detailed explanations of the examples. | ||
| 20 | </para> | ||
| 21 | |||
| 22 | <para> | ||
| 23 | [WRITERS NOTE: What is undetermined at this point is how much of the entire development process | ||
| 24 | we include in this particular chapter. | ||
| 25 | In other words, do we cover debugging and emulation steps here on a case-specific basis? | ||
| 26 | Or, do we capture that information in the appropriate subsequent chapter by case?] | ||
| 27 | </para> | ||
| 28 | |||
| 29 | <section id='system-development'> | ||
| 30 | <title>System Development</title> | ||
| 31 | |||
| 32 | <para> | ||
| 33 | System development involves modification or creation of an image that you want to run on | ||
| 34 | a specific hardware target. | ||
| 35 | Usually when you want to create an image that runs on embedded hardware the image does | ||
| 36 | not require the same amount of features that a full-fledged Linux distribution provides. | ||
| 37 | Thus, you can create a much smaller image that is designed to just use the hardware | ||
| 38 | features for your particular hardware. | ||
| 39 | </para> | ||
| 40 | |||
| 41 | <para> | ||
| 42 | To help you understand how system development works in the Yocto Project, this section | ||
| 43 | covers two types of image development: BSP creation and kernel modification. | ||
| 44 | </para> | ||
| 45 | |||
| 46 | <section id='developing-a-board-support-package-bsp'> | ||
| 47 | <title>Developing a Board Support Package (BSP)</title> | ||
| 48 | |||
| 49 | <para> | ||
| 50 | A BSP is a package of recipes that when applied while building an image results in | ||
| 51 | an image you can run on a particular board. | ||
| 52 | Thus, the package, when compiled into the new image, supports the operation of the board. | ||
| 53 | </para> | ||
| 54 | |||
| 55 | <note> | ||
| 56 | For a brief list of terms used when describing the development process in the Yocto Project, | ||
| 57 | see <xref linkend='yocto-project-terms'>Yocto Project Terms</xref> in this manual. | ||
| 58 | </note> | ||
| 59 | |||
| 60 | <para> | ||
| 61 | The remainder of this section presents the basic steps to create a BSP basing it on an | ||
| 62 | existing BSP that ships with the Yocto Project. | ||
| 63 | You can reference <xref linkend='dev-manual-bsp-appendix'>BSP Development Case</xref> | ||
| 64 | for a detailed example that uses the Crown Bay BSP as a base BSP from which to start. | ||
| 65 | </para> | ||
| 66 | |||
| 67 | <para> | ||
| 68 | Here are the basic steps involved in creating a BSP: | ||
| 69 | <orderedlist> | ||
| 70 | <listitem><para><emphasis>Set up your host development system to support | ||
| 71 | development using the Yocto Project</emphasis>: See | ||
| 72 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'> | ||
| 73 | The Linux Distributions</ulink> section and | ||
| 74 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'> | ||
| 75 | The Packages</ulink> section both | ||
| 76 | in the Yocto Project Quick Start for requirements. | ||
| 77 | You will also need a release of Yocto Project installed on the host.</para></listitem> | ||
| 78 | <listitem><para><emphasis>Establish a local copy of the Yocto Project files on your | ||
| 79 | system</emphasis>: You need to have the Yocto Project files available on your host system. | ||
| 80 | Having the Yocto Project files on your system gives you access to the build | ||
| 81 | process and tools you need. | ||
| 82 | For information on how to get these files, see the | ||
| 83 | <xref linkend='getting-setup'>Getting Setup</xref> section in this manual.</para></listitem> | ||
| 84 | <listitem><para><emphasis>Choose a Yocto Project-supported BSP as your base BSP</emphasis>: | ||
| 85 | The Yocto Project ships with several BSPs that support various hardware. | ||
| 86 | It is best to base your new BSP on an existing BSP rather than create all the | ||
| 87 | recipes and configuration files from scratch. | ||
| 88 | While it is possible to create everything from scratch, basing your new BSP | ||
| 89 | on something that is close is much easier. | ||
| 90 | Or, at a minimum, it gives you some structure with which to start.</para> | ||
| 91 | <para>At this point you need to understand your target hardware well enough to determine which | ||
| 92 | existing BSP it most closely matches. | ||
| 93 | Things to consider are your hardware’s on-board features such as CPU type and graphics support. | ||
| 94 | You should look at the README files for supported BSPs to get an idea of which one | ||
| 95 | you could use. | ||
| 96 | A generic Atom-based BSP to consider is the Crown Bay that does not support | ||
| 97 | the Intel® Embedded Media Graphics Driver (EMGD). | ||
| 98 | The remainder of this example uses that base BSP.</para> | ||
| 99 | <para>To see the supported BSPs, go to the Yocto Project | ||
| 100 | <ulink url='http://www.yoctoproject.org/download'>download page</ulink> and click | ||
| 101 | on “BSP Downloads.”</para></listitem> | ||
| 102 | <listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having | ||
| 103 | the BSP files on your system gives you access to the build | ||
| 104 | process and tools you need. | ||
| 105 | For information on how to get these files, see | ||
| 106 | <xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual.</para></listitem> | ||
| 107 | <listitem><para><emphasis>Create your own BSP layer</emphasis>: Layers are ideal for | ||
| 108 | isolating and storing work for a given piece of hardware. | ||
| 109 | A layer is really just a location or area in which you place the recipes for your BSP. | ||
| 110 | In fact, a BSP is, in itself, a special type of layer. | ||
| 111 | Consider an application as another example that illustrates a layer. | ||
| 112 | Suppose you are creating an application that has library or other dependencies in | ||
| 113 | order for it to compile and run. | ||
| 114 | The layer, in this case, would be where all the recipes that define those dependencies | ||
| 115 | are kept. The key point for a layer is that it is an isolated area that contains | ||
| 116 | all the relevant information for the project that the Yocto Project build | ||
| 117 | system knows about.</para> | ||
| 118 | <note>The Yocto Project supports four BSPs that are part of the | ||
| 119 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, | ||
| 120 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. | ||
| 121 | The recipes and configurations for these four BSPs are located and dispersed | ||
| 122 | within local Yocto Project files. | ||
| 123 | Consequently, they are not totally isolated in the spirit of layers unless you think | ||
| 124 | of <filename>meta-yocto</filename> as a layer itself. | ||
| 125 | On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest, | ||
| 126 | N450, and Sugar Bay are isolated.</note> | ||
| 127 | <para>When you set up a layer for a new BSP you should follow a standard layout. | ||
| 128 | This layout is described in the | ||
| 129 | <ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html#bsp-filelayout'> | ||
| 130 | Example Filesystem Layout</ulink> section of the Board Support Package (BSP) Development | ||
| 131 | Guide. | ||
| 132 | In the standard layout you will notice a suggested structure for recipes and | ||
| 133 | configuration information. | ||
| 134 | You can see the standard layout for the Crown Bay BSP in this example by examining the | ||
| 135 | directory structure of the <filename>meta-crownbay</filename> layer inside the | ||
| 136 | local Yocto Project files.</para></listitem> | ||
| 137 | <listitem><para><emphasis>Make configuration and recipe changes to your new BSP | ||
| 138 | layer</emphasis>: The standard BSP layer structure organizes the files you need to edit in | ||
| 139 | <filename>conf</filename> and several <filename>recipes-*</filename> within the | ||
| 140 | BSP layer.</para> | ||
| 141 | <para>Configuration changes identify where your new layer is on the local system | ||
| 142 | and identify which kernel you are going to use. | ||
| 143 | Recipe changes include altering recipes (<filename>.bb</filename> files), removing | ||
| 144 | recipes you don't use, and adding new recipes that you need to support your hardware. | ||
| 145 | </para></listitem> | ||
| 146 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | ||
| 147 | changes to your BSP layer there remains a few things | ||
| 148 | you need to do for the Yocto Project build system in order for it to create your image. | ||
| 149 | You need to get the build environment ready by sourcing an environment setup script | ||
| 150 | and you need to be sure two key configuration files are configured appropriately.</para> | ||
| 151 | <para>The entire process for building an image is overviewed in the | ||
| 152 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'> | ||
| 153 | Building an Image</ulink> section of the Yocto Project Quick Start. | ||
| 154 | You might want to reference this information.</para></listitem> | ||
| 155 | <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake | ||
| 156 | tool to build images based on the type of image | ||
| 157 | you want to create. | ||
| 158 | You can find more information on BitBake | ||
| 159 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> | ||
| 160 | <para>The build process supports several types of images to satisfy different needs. | ||
| 161 | When you issue the BitBake command you provide a “top-level” recipe that essentially | ||
| 162 | starts the process off of building the type of image you want.</para> | ||
| 163 | <para>[WRITER'S NOTE: Consider moving this to the Poky Reference Manual.]</para> | ||
| 164 | <para>You can find these recipes in the <filename>meta/recipes-core/images</filename> and | ||
| 165 | <filename>meta/recipes-sato/images</filename> directories of your local Yocto Project | ||
| 166 | file structure (Git repository or extracted release tarball). | ||
| 167 | Although the recipe names are somewhat explanatory, here is a list that describes them: | ||
| 168 | <itemizedlist> | ||
| 169 | <listitem><para><emphasis>Base</emphasis> – A foundational basic image without support | ||
| 170 | for X that can be reasonably used for customization.</para></listitem> | ||
| 171 | <listitem><para><emphasis>Core</emphasis> – A foundational basic image with support for | ||
| 172 | X that can be reasonably used for customization.</para></listitem> | ||
| 173 | <listitem><para><emphasis>Direct Disk</emphasis> – An image that you can copy directory to | ||
| 174 | the disk of the target device.</para></listitem> | ||
| 175 | <listitem><para><emphasis>Live</emphasis> – An image you can run from a USB device or from | ||
| 176 | a CD without having to first install something.</para></listitem> | ||
| 177 | <listitem><para><emphasis>Minimal</emphasis> – A small image without a GUI. | ||
| 178 | This image is not much more than a kernel with a shell.</para></listitem> | ||
| 179 | <listitem><para><emphasis>Minimal Development</emphasis> – A Minimal image suitable for | ||
| 180 | development work.</para></listitem> | ||
| 181 | <listitem><para><emphasis>Minimal Direct Disk</emphasis> – A Minimal Direct | ||
| 182 | Disk image.</para></listitem> | ||
| 183 | <listitem><para><emphasis>Minimal RAM-based Initial Root Filesystem</emphasis> – | ||
| 184 | A minimal image | ||
| 185 | that has the <filename>initramfs</filename> as part of the kernel, which allows the | ||
| 186 | system to find the first “init” program more efficiently.</para></listitem> | ||
| 187 | <listitem><para><emphasis>Minimal Live</emphasis> – A Minimal Live image.</para></listitem> | ||
| 188 | <listitem><para><emphasis>Minimal MTD Utilities</emphasis> – A minimal image that has support | ||
| 189 | for the MTD utilities, which let the user interact with the MTD subsystem in | ||
| 190 | the kernel to perform operations on flash devices.</para></listitem> | ||
| 191 | <listitem><para><emphasis>Sato</emphasis> – An image with Sato support, a mobile environment | ||
| 192 | and visual style that works well with mobile devices.</para></listitem> | ||
| 193 | <listitem><para><emphasis>Sato Development</emphasis> – A Sato image suitable for | ||
| 194 | development work.</para></listitem> | ||
| 195 | <listitem><para><emphasis>Sato Direct Disk</emphasis> – A Sato Direct | ||
| 196 | Disk image.</para></listitem> | ||
| 197 | <listitem><para><emphasis>Sato Live</emphasis> – A Sato Live image.</para></listitem> | ||
| 198 | <listitem><para><emphasis>Sato SDK</emphasis> – A Sato image that includes the Yocto Project | ||
| 199 | toolchain and development libraries.</para></listitem> | ||
| 200 | <listitem><para><emphasis>Sato SDK Direct Disk</emphasis> – A Sato SDK Direct | ||
| 201 | Disk image.</para></listitem> | ||
| 202 | <listitem><para><emphasis>Sato SDK Live</emphasis> – A Sato SDK Live | ||
| 203 | image.</para></listitem> | ||
| 204 | </itemizedlist> | ||
| 205 | </para></listitem> | ||
| 206 | </orderedlist> | ||
| 207 | </para> | ||
| 208 | |||
| 209 | <para> | ||
| 210 | You can view a video presentation of the BSP creation process | ||
| 211 | <ulink url='http://free-electrons.com/blog/elc-2011-videos'>here</ulink>. | ||
| 212 | You can also find supplemental information in the | ||
| 213 | <ulink url='http://yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html'> | ||
| 214 | Board Support Package (BSP) Development Guide</ulink>. | ||
| 215 | Finally, there is wiki page write up of the example located | ||
| 216 | <ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_creating_one_generic_Atom_BSP_from_another'> | ||
| 217 | here</ulink> you might find helpful. | ||
| 218 | </para> | ||
| 219 | </section> | ||
| 220 | |||
| 221 | <section id='modifying-a-kernel-kernel-example'> | 8 | <section id='modifying-a-kernel-kernel-example'> |
| 222 | <title>Modifying a Kernel</title> | 9 | <title>Modifying a Kernel</title> |
| 223 | 10 | ||
| @@ -593,7 +380,6 @@ | |||
| 593 | </section> | 380 | </section> |
| 594 | </section> | 381 | </section> |
| 595 | </section> | 382 | </section> |
| 596 | </section> | ||
| 597 | 383 | ||
| 598 | </chapter> | 384 | </chapter> |
| 599 | 385 | ||
