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