diff options
| -rw-r--r-- | documentation/dev-manual/dev-manual-bsp-appendix.xml | 224 |
1 files changed, 186 insertions, 38 deletions
diff --git a/documentation/dev-manual/dev-manual-bsp-appendix.xml b/documentation/dev-manual/dev-manual-bsp-appendix.xml index aaf0fbda95..f243bb8091 100644 --- a/documentation/dev-manual/dev-manual-bsp-appendix.xml +++ b/documentation/dev-manual/dev-manual-bsp-appendix.xml | |||
| @@ -10,8 +10,11 @@ | |||
| 10 | The example assumes the following: | 10 | The example assumes the following: |
| 11 | <itemizedlist> | 11 | <itemizedlist> |
| 12 | <listitem><para>No previous preparation or use of the Yocto Project.</para></listitem> | 12 | <listitem><para>No previous preparation or use of the Yocto Project.</para></listitem> |
| 13 | <listitem><para>Use of the Crown Bay Board Support Package (BSP) as a base BSP from | 13 | <listitem><para>Use of the Crown Bay Board Support Package (BSP) as a "base" BSP from |
| 14 | which to work from.</para></listitem> | 14 | which to work. |
| 15 | The example begins with the Crown Bay BSP as the starting point | ||
| 16 | but ends by building a new 'atom-pc' BSP, which was based on the Crown Bay BSP. | ||
| 17 | </para></listitem> | ||
| 15 | <listitem><para>Shell commands assume <filename>bash</filename></para></listitem> | 18 | <listitem><para>Shell commands assume <filename>bash</filename></para></listitem> |
| 16 | <listitem><para>Example was developed on an Intel-based Core i7 platform running | 19 | <listitem><para>Example was developed on an Intel-based Core i7 platform running |
| 17 | Ubuntu 10.04 LTS released in April of 2010.</para></listitem> | 20 | Ubuntu 10.04 LTS released in April of 2010.</para></listitem> |
| @@ -24,10 +27,30 @@ | |||
| 24 | <para> | 27 | <para> |
| 25 | You need to have the Yocto Project files available on your host system. | 28 | You need to have the Yocto Project files available on your host system. |
| 26 | You can get files through tarball extraction or by cloning the <filename>poky</filename> | 29 | You can get files through tarball extraction or by cloning the <filename>poky</filename> |
| 27 | Git repository. | 30 | Git repository. |
| 28 | See the bulleted item | 31 | The following paragraphs describe both methods. |
| 29 | "<link linkend='local-yp-release'>Yocto Project Release</link>" | 32 | For additional information, see the bulleted item |
| 30 | for information on how to get these files. | 33 | "<link linkend='local-yp-release'>Yocto Project Release</link>". |
| 34 | </para> | ||
| 35 | |||
| 36 | <para> | ||
| 37 | As mentioned, one way to get the Yocto Project files is to use Git to clone the | ||
| 38 | <filename>poky</filename> repository: | ||
| 39 | <literallayout class='monospaced'> | ||
| 40 | $ git clone git://git.yoctoproject.org/poky | ||
| 41 | $ cd poky | ||
| 42 | </literallayout> | ||
| 43 | Alternatively, you can start with the downloaded Poky "edison" tarball: | ||
| 44 | <literallayout class='monospaced'> | ||
| 45 | $ tar xfj poky-edison-6.0.tar.bz2 | ||
| 46 | $ cd poky | ||
| 47 | </literallayout> | ||
| 48 | <note>If you're using the tarball method, you can ignore all the following steps that | ||
| 49 | ask you to carry out Git operations. | ||
| 50 | You already have the results of those operations | ||
| 51 | in the form of the edison release tarballs. | ||
| 52 | Consequently, there is nothing left to do other than extract those tarballs into the | ||
| 53 | proper locations.</note> | ||
| 31 | </para> | 54 | </para> |
| 32 | 55 | ||
| 33 | <para> | 56 | <para> |
| @@ -44,7 +67,6 @@ | |||
| 44 | These commands create a local branch named <filename>edison</filename> | 67 | These commands create a local branch named <filename>edison</filename> |
| 45 | that tracks the remote branch of the same name. | 68 | that tracks the remote branch of the same name. |
| 46 | <literallayout class='monospaced'> | 69 | <literallayout class='monospaced'> |
| 47 | $ cd poky | ||
| 48 | $ git checkout -b edison origin/edison | 70 | $ git checkout -b edison origin/edison |
| 49 | Switched to a new branch 'edison' | 71 | Switched to a new branch 'edison' |
| 50 | </literallayout> | 72 | </literallayout> |
| @@ -58,7 +80,12 @@ | |||
| 58 | For this example, the base BSP is the <trademark class='registered'>Intel</trademark> | 80 | For this example, the base BSP is the <trademark class='registered'>Intel</trademark> |
| 59 | <trademark class='trade'>Atom</trademark> Processor E660 with Intel Platform | 81 | <trademark class='trade'>Atom</trademark> Processor E660 with Intel Platform |
| 60 | Controller Hub EG20T Development Kit, which is otherwise referred to as "Crown Bay." | 82 | Controller Hub EG20T Development Kit, which is otherwise referred to as "Crown Bay." |
| 61 | The BSP layer is <filename>meta-crownbay</filename>. | 83 | The BSP layer is <filename>meta-crownbay</filename>. |
| 84 | The base BSP is simply the BSP | ||
| 85 | we will be using as a starting point, so don't worry if you don't actually have Crown Bay | ||
| 86 | hardware. | ||
| 87 | The remainder of the example transforms the base BSP into a BSP that should be | ||
| 88 | able to boot on generic atom-pc (netbook) hardware. | ||
| 62 | </para> | 89 | </para> |
| 63 | 90 | ||
| 64 | <para> | 91 | <para> |
| @@ -73,27 +100,52 @@ | |||
| 73 | <para> | 100 | <para> |
| 74 | You need to have the base BSP layer on your development system. | 101 | You need to have the base BSP layer on your development system. |
| 75 | Similar to the local Yocto Project files, you can get the BSP | 102 | Similar to the local Yocto Project files, you can get the BSP |
| 76 | layer one of two ways: | 103 | layer a couple of different ways: |
| 77 | download the BSP tarball and extract it, or set up a local Git repository that | 104 | download the BSP tarball and extract it, or set up a local Git repository that |
| 78 | has the Yocto Project BSP layers. | 105 | has the Yocto Project BSP layers. |
| 79 | You should use the same method that you used to get the local Yocto Project files earlier. | 106 | You should use the same method that you used to get the local Yocto Project files earlier. |
| 80 | See "<link linkend='getting-setup'>Getting Setup</link>" for information on how to get | 107 | See "<link linkend='getting-setup'>Getting Setup</link>" for information on how to get |
| 81 | the BSP files. | 108 | the BSP files. |
| 82 | </para> | 109 | </para> |
| 83 | 110 | ||
| 84 | <para> | 111 | <para> |
| 85 | This example assumes the local <filename>meta-intel</filename> Git repository is | 112 | This example assumes the BSP layer will be located within a directory named |
| 86 | inside the local <filename>poky</filename> Git repository. | 113 | <filename>meta-intel</filename> contained within the <filename>poky</filename> |
| 87 | The <filename>meta-intel</filename> Git repository contains all the metadata | 114 | parent directory. |
| 88 | that supports BSP creation. | 115 | The following steps will automatically create the |
| 116 | <filename>meta-intel</filename> directory and the contained meta-crownbay | ||
| 117 | starting point in both the Git and the tarball cases. | ||
| 89 | </para> | 118 | </para> |
| 90 | 119 | ||
| 91 | <para> | 120 | <para> |
| 121 | If you're using the Git method, you could do the following to create | ||
| 122 | the starting layout after you have made sure you are in the <filename>poky</filename> | ||
| 123 | directory created in the previous steps: | ||
| 124 | <literallayout class='monospaced'> | ||
| 125 | $ git clone git://git.yoctoproject.org/meta-intel.git | ||
| 126 | $ cd meta-intel | ||
| 127 | </literallayout> | ||
| 128 | Alternatively, you can start with the downloaded <filename>meta-intel</filename> | ||
| 129 | edison tarball. | ||
| 130 | Again, be sure that you are already in the <filename>poky</filename> directory | ||
| 131 | as described previously: | ||
| 132 | <literallayout class='monospaced'> | ||
| 133 | $ tar xfj crownbay-noemgd-edison-6.0.0.tar.bz2 | ||
| 134 | $ cd meta-intel | ||
| 135 | </literallayout> | ||
| 136 | </para> | ||
| 137 | |||
| 138 | <para> | ||
| 139 | The <filename>meta-intel</filename> directory contains all the metadata | ||
| 140 | that supports BSP creation. | ||
| 141 | If you're using the Git method, the following | ||
| 142 | step will switch to the edison metadata. | ||
| 143 | If you're using the tarball method, you already have the correct metadata and can | ||
| 144 | skip to the next step. | ||
| 92 | Because <filename>meta-intel</filename> is its own Git repository, you will want | 145 | Because <filename>meta-intel</filename> is its own Git repository, you will want |
| 93 | to be sure you are in the appropriate branch for your work. | 146 | to be sure you are in the appropriate branch for your work. |
| 94 | For this example we are going to use the <filename>edison</filename> branch. | 147 | For this example we are going to use the <filename>edison</filename> branch. |
| 95 | <literallayout class='monospaced'> | 148 | <literallayout class='monospaced'> |
| 96 | $ cd meta-intel | ||
| 97 | $ git checkout -b edison origin/edison | 149 | $ git checkout -b edison origin/edison |
| 98 | Switched to a new branch 'edison' | 150 | Switched to a new branch 'edison' |
| 99 | </literallayout> | 151 | </literallayout> |
| @@ -112,15 +164,12 @@ | |||
| 112 | 164 | ||
| 113 | <para> | 165 | <para> |
| 114 | For this example, the new layer will be named <filename>meta-mymachine</filename>. | 166 | For this example, the new layer will be named <filename>meta-mymachine</filename>. |
| 115 | The name must follow the BSP layer naming convention, which is | 167 | The name should follow the BSP layer naming convention, which is |
| 116 | <filename>meta-<name></filename>. | 168 | <filename>meta-<name></filename>. |
| 117 | The following example assumes your working directory is <filename>meta-intel</filename> | 169 | The following assumes your working directory is <filename>meta-intel</filename> |
| 118 | inside the local Yocto Project files. | 170 | inside the local Yocto Project files. |
| 119 | If you downloaded and expanded a Crown Bay tarball then you simply copy the resulting | 171 | To start your new layer, just copy the new layer alongside the existing |
| 120 | <filename>meta-crownbay</filename> directory structure to a location of your choice. | 172 | BSP layers in the <filename>meta-intel</filename> directory: |
| 121 | Good practice for a Git repository, however, is to just copy the new layer alongside | ||
| 122 | the existing | ||
| 123 | BSP layers in the <filename>meta-intel</filename> Git repository: | ||
| 124 | <literallayout class='monospaced'> | 173 | <literallayout class='monospaced'> |
| 125 | $ cp -a meta-crownbay/ meta-mymachine | 174 | $ cp -a meta-crownbay/ meta-mymachine |
| 126 | </literallayout> | 175 | </literallayout> |
| @@ -162,9 +211,14 @@ | |||
| 162 | </para> | 211 | </para> |
| 163 | 212 | ||
| 164 | <para> | 213 | <para> |
| 165 | The next step makes changes to <filename>mymachine.conf</filename> itself. | 214 | Next, we need to make changes to the <filename>mymachine.conf</filename> itself. |
| 166 | The only changes needed for this example are changes to the comment lines. | 215 | The only changes we want to make for this example are to the comment lines. |
| 167 | Here we simply substitute the Crown Bay name with an appropriate name. | 216 | Changing comments, of course, is never strictly necessary, but it's alway good form to make |
| 217 | them reflect reality as much as possible. | ||
| 218 | |||
| 219 | Here, simply substitute the Crown Bay name with an appropriate name for the BSP | ||
| 220 | (<filename>mymachine</filename> in this case) and change the description to | ||
| 221 | something that describes your hardware. | ||
| 168 | </para> | 222 | </para> |
| 169 | 223 | ||
| 170 | <para> | 224 | <para> |
| @@ -176,7 +230,8 @@ | |||
| 176 | </para> | 230 | </para> |
| 177 | 231 | ||
| 178 | <para> | 232 | <para> |
| 179 | The next configuration file in the new BSP layer we need to edit is <filename>layer.conf</filename>. | 233 | The next configuration file in the new BSP layer we need to edit is |
| 234 | <filename>meta-mymachine/conf/layer.conf</filename>. | ||
| 180 | This file identifies build information needed for the new layer. | 235 | This file identifies build information needed for the new layer. |
| 181 | You can see the | 236 | You can see the |
| 182 | "<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html#bsp-filelayout-layer'>Layer Configuration File</ulink>" section in | 237 | "<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html#bsp-filelayout-layer'>Layer Configuration File</ulink>" section in |
| @@ -232,7 +287,7 @@ | |||
| 232 | the remaining one that doesn't support EMGD. | 287 | the remaining one that doesn't support EMGD. |
| 233 | These commands take care of the <filename>recipes-bsp</filename> recipes: | 288 | These commands take care of the <filename>recipes-bsp</filename> recipes: |
| 234 | <literallayout class='monospaced'> | 289 | <literallayout class='monospaced'> |
| 235 | $ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/*emgd* | 290 | $ rm -rf meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay |
| 236 | $ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ \ | 291 | $ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ \ |
| 237 | meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine | 292 | meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine |
| 238 | </literallayout> | 293 | </literallayout> |
| @@ -248,7 +303,6 @@ | |||
| 248 | be sure to rename remaining directories appropriately. | 303 | be sure to rename remaining directories appropriately. |
| 249 | The following commands clean up the <filename>recipes-graphics</filename> directory: | 304 | The following commands clean up the <filename>recipes-graphics</filename> directory: |
| 250 | <literallayout class='monospaced'> | 305 | <literallayout class='monospaced'> |
| 251 | $ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-emgd* | ||
| 252 | $ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay | 306 | $ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay |
| 253 | $ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd \ | 307 | $ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd \ |
| 254 | meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine | 308 | meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine |
| @@ -304,6 +358,10 @@ | |||
| 304 | The <filename>SRCREV_machine</filename> and <filename>SRCREV_meta</filename> | 358 | The <filename>SRCREV_machine</filename> and <filename>SRCREV_meta</filename> |
| 305 | statements point to the exact commits used by the Yocto Project development team | 359 | statements point to the exact commits used by the Yocto Project development team |
| 306 | in their source repositories that identify the right kernel for our hardware. | 360 | in their source repositories that identify the right kernel for our hardware. |
| 361 | In other words, the <filename>SRCREV</filename> values are simply Git commit | ||
| 362 | IDs that identify which commit on each | ||
| 363 | of the kernel branches (machine and meta) will be checked out and used to build | ||
| 364 | the kernel. | ||
| 307 | </para> | 365 | </para> |
| 308 | 366 | ||
| 309 | <para> | 367 | <para> |
| @@ -323,12 +381,12 @@ | |||
| 323 | SRCREV_machine_pn-linux-yocto_crownbay ?= \ | 381 | SRCREV_machine_pn-linux-yocto_crownbay ?= \ |
| 324 | "2247da9131ea7e46ed4766a69bb1353dba22f873" | 382 | "2247da9131ea7e46ed4766a69bb1353dba22f873" |
| 325 | SRCREV_meta_pn-linux-yocto_crownbay ?= \ | 383 | SRCREV_meta_pn-linux-yocto_crownbay ?= \ |
| 326 | "67a46a608f47c19f16995be7de7b272025864b1b" | 384 | "d05450e4aef02c1b7137398ab3a9f8f96da74f52" |
| 327 | 385 | ||
| 328 | SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \ | 386 | SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \ |
| 329 | "2247da9131ea7e46ed4766a69bb1353dba22f873" | 387 | "2247da9131ea7e46ed4766a69bb1353dba22f873" |
| 330 | SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \ | 388 | SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \ |
| 331 | "67a46a608f47c19f16995be7de7b272025864b1b" | 389 | "d05450e4aef02c1b7137398ab3a9f8f96da74f52" |
| 332 | </literallayout> | 390 | </literallayout> |
| 333 | </para> | 391 | </para> |
| 334 | 392 | ||
| @@ -343,24 +401,49 @@ | |||
| 343 | </para> | 401 | </para> |
| 344 | 402 | ||
| 345 | <para> | 403 | <para> |
| 346 | To fix this situation in <filename>linux-yocto_3.0.bbappend</filename> | 404 | To fix this situation in <filename>linux-yocto_3.0.bbappend</filename>, |
| 347 | we delete the two <filename>SRCREV</filename> statements that support | 405 | we delete the two <filename>SRCREV</filename> statements that support |
| 348 | EMGD (the top pair). | 406 | EMGD (the top pair). |
| 349 | We also change the remaining pair to specify <filename>mymachine</filename> | 407 | We also change the remaining pair to specify <filename>mymachine</filename> |
| 350 | and insert the commit identifiers to identify the kernel in which we | 408 | and insert the commit identifiers to identify the kernel in which we |
| 351 | are interested, which will be based on the <filename>atom-pc-standard</filename> | 409 | are interested, which will be based on the <filename>atom-pc-standard</filename> |
| 352 | kernel. | 410 | kernel. |
| 411 | In this case, because we're working with the edison branch of everything, we | ||
| 412 | need to use the <filename>SRCREV</filename> values for the atom-pc branch | ||
| 413 | that are associated with the edison release. | ||
| 414 | To find those values, we need to find the <filename>SRCREV</filename> | ||
| 415 | values that edison uses for the atom-pc branch, which we find in the | ||
| 416 | <filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename> | ||
| 417 | file. | ||
| 418 | </para> | ||
| 419 | |||
| 420 | <para> | ||
| 421 | The machine <filename>SRCREV</filename> we want is in the | ||
| 422 | <filename>SRCREV_machine_atom-pc</filename> variable. | ||
| 423 | The meta <filename>SRCREV</filename> isn't specified in this file, so it must be | ||
| 424 | specified in the base kernel recipe in the | ||
| 425 | <filename>poky/meta/recipes-kernel/linux/linux-yocto_3.0.bb</filename> | ||
| 426 | file, in the <filename>SRCREV_meta variable</filename> found there. | ||
| 427 | It happens to be the same as the value we already inherited from the | ||
| 428 | <filename>meta-crownbay</filename> BSP. | ||
| 353 | Here are the final <filename>SRCREV</filename> statements: | 429 | Here are the final <filename>SRCREV</filename> statements: |
| 354 | <literallayout class='monospaced'> | 430 | <literallayout class='monospaced'> |
| 355 | SRCREV_machine_pn-linux-yocto_mymachine ?= \ | 431 | SRCREV_machine_pn-linux-yocto_mymachine ?= \ |
| 356 | "06c798f25a19281d7fa944b14366dd75820ba009" | 432 | "1e18e44adbe79b846e382370eb29bc4b8cd5a1a0" |
| 357 | SRCREV_meta_pn-linux-yocto_mymachine ?= \ | 433 | SRCREV_meta_pn-linux-yocto_mymachine ?= \ |
| 358 | "67a46a608f47c19f16995be7de7b272025864b1b" | 434 | "d05450e4aef02c1b7137398ab3a9f8f96da74f52" |
| 359 | </literallayout> | 435 | </literallayout> |
| 360 | </para> | 436 | </para> |
| 361 | 437 | ||
| 362 | <para> | 438 | <para> |
| 363 | If you are familiar with Git repositories you probably won’t have trouble locating the | 439 | In this example, we're using the <filename>SRCREV</filename> values we |
| 440 | found already captured in the edison release because we're creating a BSP based on | ||
| 441 | edison. | ||
| 442 | If, instead, we had based our BSP on the master branches, we would want to use | ||
| 443 | the most recent <filename>SRCREV</filename> values taken directly from the kernel repo. | ||
| 444 | We will not be doing that for this example. | ||
| 445 | However, if you do base a future BSP on master and | ||
| 446 | if you are familiar with Git repositories, you probably won’t have trouble locating the | ||
| 364 | exact commit strings in the Yocto Project source repositories you need to change | 447 | exact commit strings in the Yocto Project source repositories you need to change |
| 365 | the <filename>SRCREV</filename> statements. | 448 | the <filename>SRCREV</filename> statements. |
| 366 | You can find all the <filename>machine</filename> and <filename>meta</filename> | 449 | You can find all the <filename>machine</filename> and <filename>meta</filename> |
| @@ -394,19 +477,25 @@ | |||
| 394 | Because we are not interested in supporting EMGD those three can be deleted. | 477 | Because we are not interested in supporting EMGD those three can be deleted. |
| 395 | The remaining three must be changed so that <filename>mymachine</filename> replaces | 478 | The remaining three must be changed so that <filename>mymachine</filename> replaces |
| 396 | <filename>crownbay-noemgd</filename> and <filename>crownbay</filename>. | 479 | <filename>crownbay-noemgd</filename> and <filename>crownbay</filename>. |
| 480 | Because we are using the atom-pc branch for this new BSP, we can also find | ||
| 481 | the exact branch we need for the KMACHINE variable in our new BSP from the value | ||
| 482 | we find in the | ||
| 483 | <filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename> | ||
| 484 | file we looked at in a previous step. | ||
| 485 | In this case, the value we want is in the KMACHINE_atom-pc variable in that file. | ||
| 397 | Here is the final <filename>linux-yocto_3.0.bbappend</filename> file after all | 486 | Here is the final <filename>linux-yocto_3.0.bbappend</filename> file after all |
| 398 | the edits: | 487 | the edits: |
| 399 | <literallayout class='monospaced'> | 488 | <literallayout class='monospaced'> |
| 400 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | 489 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" |
| 401 | 490 | ||
| 402 | COMPATIBLE_MACHINE_mymachine = "mymachine" | 491 | COMPATIBLE_MACHINE_mymachine = "mymachine" |
| 403 | KMACHINE_mymachine = "yocto/standard/mymachine" | 492 | KMACHINE_mymachine = "yocto/standard/common-pc/atom-pc" |
| 404 | KERNEL_FEATURES_append_mymachine += " cfg/smp.scc" | 493 | KERNEL_FEATURES_append_mymachine += " cfg/smp.scc" |
| 405 | 494 | ||
| 406 | SRCREV_machine_pn-linux-yocto_mymachine ?= \ | 495 | SRCREV_machine_pn-linux-yocto_mymachine ?= \ |
| 407 | "06c798f25a19281d7fa944b14366dd75820ba009" | 496 | "1e18e44adbe79b846e382370eb29bc4b8cd5a1a0" |
| 408 | SRCREV_meta_pn-linux-yocto_mymachine ?= \ | 497 | SRCREV_meta_pn-linux-yocto_mymachine ?= \ |
| 409 | "67a46a608f47c19f16995be7de7b272025864b1b" | 498 | "d05450e4aef02c1b7137398ab3a9f8f96da74f52" |
| 410 | </literallayout> | 499 | </literallayout> |
| 411 | </para> | 500 | </para> |
| 412 | </section> | 501 | </section> |
| @@ -492,7 +581,7 @@ | |||
| 492 | </section> | 581 | </section> |
| 493 | 582 | ||
| 494 | <section id='building-the-image-app'> | 583 | <section id='building-the-image-app'> |
| 495 | <title>Building the Image</title> | 584 | <title>Building and Booting the Image</title> |
| 496 | 585 | ||
| 497 | <para> | 586 | <para> |
| 498 | To build the image for our <filename>meta-mymachine</filename> BSP enter the following command | 587 | To build the image for our <filename>meta-mymachine</filename> BSP enter the following command |
| @@ -513,6 +602,65 @@ | |||
| 513 | If the build results in any type of error you should check for misspellings in the | 602 | If the build results in any type of error you should check for misspellings in the |
| 514 | files you changed or problems with your host development environment such as missing packages. | 603 | files you changed or problems with your host development environment such as missing packages. |
| 515 | </para> | 604 | </para> |
| 605 | |||
| 606 | <para> | ||
| 607 | Finally, once you have an image, you can try booting it from a device | ||
| 608 | (e.g. a USB device). | ||
| 609 | To prepare a bootable USB device, insert a USB flash drive into your build system and | ||
| 610 | copy the <filename>.hddimage</filename>, located in the | ||
| 611 | <filename>poky/build/tmp/deploy/images</filename> | ||
| 612 | directory after a successful build to the flash drive. | ||
| 613 | Assuming the USB flash drive takes device <filename>/dev/sdf</filename>, | ||
| 614 | use <filename>dd</filename> to copy the live image to it. | ||
| 615 | For example: | ||
| 616 | <literallayout class='monospaced'> | ||
| 617 | # dd if=core-image-sato-mymachine-20111101223904.hddimg of=/dev/sdf | ||
| 618 | # sync | ||
| 619 | # eject /dev/sdf | ||
| 620 | </literallayout> | ||
| 621 | You should now have a bootable USB flash device. | ||
| 622 | </para> | ||
| 623 | |||
| 624 | <para> | ||
| 625 | Insert the device | ||
| 626 | into a bootable USB socket on the target, and power it on. | ||
| 627 | The system should boot to the Sato graphical desktop. | ||
| 628 | </para> | ||
| 629 | |||
| 630 | <para> | ||
| 631 | For reference, the sato image produced by the previous steps for edison | ||
| 632 | should look like the following in terms of size. | ||
| 633 | If your sato image is much different from this, | ||
| 634 | you probably made a mistake in one of the above steps: | ||
| 635 | <literallayout class='monospaced'> | ||
| 636 | 358715392 2011-11-01 19:11 core-image-sato-mymachine-20111101223904.hddimg | ||
| 637 | </literallayout> | ||
| 638 | <note>The previous instructions are also present in the README that was copied | ||
| 639 | from meta-crownbay, which should also be updated to reflect the specifics of your | ||
| 640 | new BSP. | ||
| 641 | That file and the <filename>README.hardware</filename> file in the top-level | ||
| 642 | <filename>poky</filename> directory | ||
| 643 | also provides some suggestions for things to try if booting fails and produces | ||
| 644 | strange error messages.</note> | ||
| 645 | </para> | ||
| 646 | |||
| 647 | <para> | ||
| 648 | Because this new image is not in any way tailored to the system you're | ||
| 649 | booting it on, which is assumed to be some sort of atom-pc (netbook) system for this | ||
| 650 | example, it might not be completely functional though it should at least boot to a text | ||
| 651 | prompt. | ||
| 652 | Specifically, it might fail to boot into graphics without some tweaking. | ||
| 653 | If this ends up being the case, a possible next step would be to replace the | ||
| 654 | <filename>mymachine.conf</filename> | ||
| 655 | contents with the contents of <filename>atom-pc.conf</filename> and replace | ||
| 656 | <filename>xorg.conf</filename> with <filename>atom-pc xorg.conf</filename> | ||
| 657 | in <filename>meta-yocto</filename> and see if it fares any better. | ||
| 658 | In any case, following the previous steps should | ||
| 659 | probably give you a buildable and bootable image. | ||
| 660 | Getting things working like you want | ||
| 661 | them to for your hardware will normally require some amount of experimentation with | ||
| 662 | configuration settings. | ||
| 663 | </para> | ||
| 516 | </section> | 664 | </section> |
| 517 | </appendix> | 665 | </appendix> |
| 518 | 666 | ||
