diff options
Diffstat (limited to 'documentation/dev-manual')
| -rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 186 | ||||
| -rw-r--r-- | documentation/dev-manual/figures/bsp-dev-flow.png | bin | 42751 -> 0 bytes |
2 files changed, 0 insertions, 186 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index d2c84eae03..8b9aa4a223 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
| @@ -76,192 +76,6 @@ | |||
| 76 | configuration. | 76 | configuration. |
| 77 | </para> | 77 | </para> |
| 78 | 78 | ||
| 79 | <section id='developing-a-board-support-package-bsp'> | ||
| 80 | <title>Developing a Board Support Package (BSP)</title> | ||
| 81 | |||
| 82 | <para> | ||
| 83 | A BSP is a collection of recipes that, when applied during a build, results in | ||
| 84 | an image that you can run on a particular board. | ||
| 85 | Thus, the package when compiled into the new image, supports the operation of the board. | ||
| 86 | </para> | ||
| 87 | |||
| 88 | <note> | ||
| 89 | For a brief list of terms used when describing the development process in the Yocto Project, | ||
| 90 | see the | ||
| 91 | "<ulink url='&YOCTO_DOCS_REF_URL;#yocto-project-terms'>Yocto Project Terms</ulink>" section. | ||
| 92 | </note> | ||
| 93 | |||
| 94 | <para> | ||
| 95 | The remainder of this section presents the basic | ||
| 96 | steps used to create a BSP using the Yocto Project's | ||
| 97 | <ulink url='&YOCTO_DOCS_BSP_URL;#using-the-yocto-projects-bsp-tools'>BSP Tools</ulink>. | ||
| 98 | Although not required for BSP creation, the | ||
| 99 | <filename>meta-intel</filename> repository, which contains | ||
| 100 | many BSPs supported by the Yocto Project, is part of the example. | ||
| 101 | </para> | ||
| 102 | |||
| 103 | <para> | ||
| 104 | For an example that shows how to create a new layer using the tools, see the | ||
| 105 | "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>" | ||
| 106 | section in the Yocto Project Board Support Package (BSP) Developer's Guide. | ||
| 107 | </para> | ||
| 108 | |||
| 109 | <para> | ||
| 110 | The following illustration and list summarize the BSP creation general workflow. | ||
| 111 | </para> | ||
| 112 | |||
| 113 | <para> | ||
| 114 | <imagedata fileref="figures/bsp-dev-flow.png" width="6in" depth="7in" align="center" scalefit="1" /> | ||
| 115 | </para> | ||
| 116 | |||
| 117 | <para> | ||
| 118 | <orderedlist> | ||
| 119 | <listitem><para><emphasis>Set up your host development system to support | ||
| 120 | development using the Yocto Project</emphasis>: See the | ||
| 121 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>" | ||
| 122 | and the | ||
| 123 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both | ||
| 124 | in the Yocto Project Quick Start for requirements.</para></listitem> | ||
| 125 | <listitem><para><emphasis>Establish a local copy of the project files on your | ||
| 126 | system</emphasis>: You need this | ||
| 127 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
| 128 | available on your host system. | ||
| 129 | Having these files on your system gives you access to the build | ||
| 130 | process and to the tools you need. | ||
| 131 | For information on how to set up the Source Directory, | ||
| 132 | see the | ||
| 133 | "<link linkend='working-with-yocto-project-source-files'>Working With Yocto Project Source Files</link>" | ||
| 134 | section. | ||
| 135 | </para></listitem> | ||
| 136 | <listitem><para><emphasis>Establish the <filename>meta-intel</filename> | ||
| 137 | repository on your system</emphasis>: Having local copies | ||
| 138 | of these supported BSP layers on your system gives you | ||
| 139 | access to layers you might be able to build on or modify | ||
| 140 | to create your BSP. | ||
| 141 | For information on how to get these files, see the | ||
| 142 | "<link linkend='setting-up-bsp-layers'>Setting Up BSP Layers</link>" section. | ||
| 143 | </para></listitem> | ||
| 144 | <listitem><para><emphasis>Create your own BSP layer using the | ||
| 145 | <ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'><filename>yocto-bsp</filename></ulink> script</emphasis>: | ||
| 146 | Layers are ideal for | ||
| 147 | isolating and storing work for a given piece of hardware. | ||
| 148 | A layer is really just a location or area in which you place | ||
| 149 | the recipes and configurations for your BSP. | ||
| 150 | In fact, a BSP is, in itself, a special type of layer. | ||
| 151 | The simplest way to create a new BSP layer that is compliant with the | ||
| 152 | Yocto Project is to use the <filename>yocto-bsp</filename> script. | ||
| 153 | For information about that script, see the | ||
| 154 | "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>" | ||
| 155 | section in the Yocto Project Board Support (BSP) Developer's Guide. | ||
| 156 | </para> | ||
| 157 | |||
| 158 | <para> | ||
| 159 | Another example that illustrates a layer | ||
| 160 | is an application. | ||
| 161 | Suppose you are creating an application that has | ||
| 162 | library or other dependencies in order for it to | ||
| 163 | compile and run. | ||
| 164 | The layer, in this case, would be where all the | ||
| 165 | recipes that define those dependencies are kept. | ||
| 166 | The key point for a layer is that it is an isolated | ||
| 167 | area that contains all the relevant information for | ||
| 168 | the project that the OpenEmbedded build system knows | ||
| 169 | about. | ||
| 170 | For more information on layers, see the | ||
| 171 | "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" | ||
| 172 | section. | ||
| 173 | For more information on BSP layers, see the | ||
| 174 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" | ||
| 175 | section in the Yocto Project Board Support Package (BSP) | ||
| 176 | Developer's Guide. | ||
| 177 | <note> | ||
| 178 | <para> | ||
| 179 | Five BSPs exist that are part of the Yocto Project release: | ||
| 180 | <filename>beaglebone</filename> (ARM), | ||
| 181 | <filename>mpc8315e</filename> (PowerPC), | ||
| 182 | and <filename>edgerouter</filename> (MIPS). | ||
| 183 | The recipes and configurations for these five BSPs | ||
| 184 | are located and dispersed within the | ||
| 185 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>. | ||
| 186 | </para> | ||
| 187 | |||
| 188 | <para> | ||
| 189 | Three core Intel BSPs exist as part of the Yocto | ||
| 190 | Project release in the | ||
| 191 | <filename>meta-intel</filename> layer: | ||
| 192 | <itemizedlist> | ||
| 193 | <listitem><para><filename>intel-core2-32</filename>, | ||
| 194 | which is a BSP optimized for the Core2 family of CPUs | ||
| 195 | as well as all CPUs prior to the Silvermont core. | ||
| 196 | </para></listitem> | ||
| 197 | <listitem><para><filename>intel-corei7-64</filename>, | ||
| 198 | which is a BSP optimized for Nehalem and later | ||
| 199 | Core and Xeon CPUs as well as Silvermont and later | ||
| 200 | Atom CPUs, such as the Baytrail SoCs. | ||
| 201 | </para></listitem> | ||
| 202 | <listitem><para><filename>intel-quark</filename>, | ||
| 203 | which is a BSP optimized for the Intel Galileo | ||
| 204 | gen1 & gen2 development boards. | ||
| 205 | </para></listitem> | ||
| 206 | </itemizedlist> | ||
| 207 | </para> | ||
| 208 | </note> | ||
| 209 | </para> | ||
| 210 | |||
| 211 | <para>When you set up a layer for a new BSP, you should follow a standard layout. | ||
| 212 | This layout is described in the | ||
| 213 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-filelayout'>Example Filesystem Layout</ulink>" | ||
| 214 | section of the Board Support Package (BSP) Development Guide. | ||
| 215 | In the standard layout, you will notice a suggested structure for recipes and | ||
| 216 | configuration information. | ||
| 217 | You can see the standard layout for a BSP by examining | ||
| 218 | any supported BSP found in the <filename>meta-intel</filename> layer inside | ||
| 219 | the Source Directory.</para></listitem> | ||
| 220 | <listitem><para><emphasis>Make configuration changes to your new BSP | ||
| 221 | layer</emphasis>: The standard BSP layer structure organizes the files you need | ||
| 222 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> | ||
| 223 | directories within the BSP layer. | ||
| 224 | Configuration changes identify where your new layer is on the local system | ||
| 225 | and identify which kernel you are going to use. | ||
| 226 | When you run the <filename>yocto-bsp</filename> script, you are able to interactively | ||
| 227 | configure many things for the BSP (e.g. keyboard, touchscreen, and so forth). | ||
| 228 | </para></listitem> | ||
| 229 | <listitem><para><emphasis>Make recipe changes to your new BSP layer</emphasis>: Recipe | ||
| 230 | changes include altering recipes (<filename>.bb</filename> files), removing | ||
| 231 | recipes you do not use, and adding new recipes or append files | ||
| 232 | (<filename>.bbappend</filename>) that you need to support your hardware. | ||
| 233 | </para></listitem> | ||
| 234 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | ||
| 235 | changes to your BSP layer, there remains a few things | ||
| 236 | you need to do for the OpenEmbedded build system in order for it to create your image. | ||
| 237 | You need to get the build environment ready by sourcing an environment setup script | ||
| 238 | (i.e. <filename>oe-init-build-env</filename> or | ||
| 239 | <filename>oe-init-build-env-memres</filename>) | ||
| 240 | and you need to be sure two key configuration files are configured appropriately: | ||
| 241 | the <filename>conf/local.conf</filename> and the | ||
| 242 | <filename>conf/bblayers.conf</filename> file. | ||
| 243 | You must make the OpenEmbedded build system aware of your new layer. | ||
| 244 | See the | ||
| 245 | "<link linkend='enabling-your-layer'>Enabling Your Layer</link>" section | ||
| 246 | for information on how to let the build system know about your new layer.</para> | ||
| 247 | <para>The entire process for building an image is overviewed in the section | ||
| 248 | "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" section | ||
| 249 | of the Yocto Project Quick Start. | ||
| 250 | You might want to reference this information.</para></listitem> | ||
| 251 | <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system | ||
| 252 | uses the BitBake tool to build images based on the type of image you want to create. | ||
| 253 | You can find more information about BitBake in the | ||
| 254 | <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>. | ||
| 255 | </para> | ||
| 256 | <para>The build process supports several types of images to satisfy different needs. | ||
| 257 | See the | ||
| 258 | "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter | ||
| 259 | in the Yocto Project Reference Manual for information on | ||
| 260 | supported images.</para></listitem> | ||
| 261 | </orderedlist> | ||
| 262 | </para> | ||
| 263 | </section> | ||
| 264 | |||
| 265 | <section id='modifying-the-kernel'> | 79 | <section id='modifying-the-kernel'> |
| 266 | <title><anchor id='kernel-spot' />Modifying the Kernel</title> | 80 | <title><anchor id='kernel-spot' />Modifying the Kernel</title> |
| 267 | 81 | ||
diff --git a/documentation/dev-manual/figures/bsp-dev-flow.png b/documentation/dev-manual/figures/bsp-dev-flow.png deleted file mode 100644 index 540b0abb9f..0000000000 --- a/documentation/dev-manual/figures/bsp-dev-flow.png +++ /dev/null | |||
| Binary files differ | |||
