diff options
Diffstat (limited to 'documentation/dev-manual/dev-manual-cases.xml')
-rw-r--r-- | documentation/dev-manual/dev-manual-cases.xml | 305 |
1 files changed, 174 insertions, 131 deletions
diff --git a/documentation/dev-manual/dev-manual-cases.xml b/documentation/dev-manual/dev-manual-cases.xml index 83b02b1435..c1ebaf9ff7 100644 --- a/documentation/dev-manual/dev-manual-cases.xml +++ b/documentation/dev-manual/dev-manual-cases.xml | |||
@@ -65,7 +65,8 @@ | |||
65 | The Linux Distributions</ulink> section and | 65 | The Linux Distributions</ulink> section and |
66 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'> | 66 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'> |
67 | The Packages</ulink> section both | 67 | The Packages</ulink> section both |
68 | in the Yocto Project Quick Start for requirements.</para></listitem> | 68 | in the Yocto Project Quick Start for requirements. |
69 | You will also need a release of Yocto Project installed on the host.</para></listitem> | ||
69 | <listitem><para>Choose a BSP available with Yocto Project that most closely represents | 70 | <listitem><para>Choose a BSP available with Yocto Project that most closely represents |
70 | your hardware.</para></listitem> | 71 | your hardware.</para></listitem> |
71 | <listitem><para>Get set up with a base BSP.</para></listitem> | 72 | <listitem><para>Get set up with a base BSP.</para></listitem> |
@@ -135,16 +136,17 @@ | |||
135 | $ git branch -a | 136 | $ git branch -a |
136 | $ git tag -l | 137 | $ git tag -l |
137 | </literallayout> | 138 | </literallayout> |
138 | For this example we are going to use the Yocto Project 1.0.1 Release, | 139 | For this example we are going to use the Yocto Project 1.1 Release, |
139 | which maps to the <filename>bernard</filename> branch in the repository. | 140 | which maps to the <filename>[NEED BRANCH]</filename> branch in the repository. |
140 | These commands create a local branch named <filename>bernard</filename> | 141 | These commands create a local branch named <filename>[NEED BRANCH]</filename> |
141 | that tracks the remote branch of the same name. | 142 | that tracks the remote branch of the same name. |
142 | <literallayout class='monospaced'> | 143 | <literallayout class='monospaced'> |
143 | 144 | ||
144 | $ cd poky | 145 | $ cd poky |
145 | $ git checkout -b bernard | 146 | $ git checkout -b bernard origin/bernard |
146 | Switched to a new branch 'bernard' | 147 | Switched to a new branch 'bernard' |
147 | </literallayout> | 148 | </literallayout> |
149 | [WRITER'S NOTE: I NEED THE REAL BRANCH NAMES IN THE EXAMPLE.] | ||
148 | </para> | 150 | </para> |
149 | </section> | 151 | </section> |
150 | 152 | ||
@@ -205,16 +207,17 @@ | |||
205 | then you need to do the same for the | 207 | then you need to do the same for the |
206 | BSP, which is located in the <filename>meta-intel</filename> Git repository. | 208 | BSP, which is located in the <filename>meta-intel</filename> Git repository. |
207 | The <filename>meta-intel</filename> repository contains all the metadata | 209 | The <filename>meta-intel</filename> repository contains all the metadata |
208 | that supports BSP creation. | 210 | that supports BSP creation. |
211 | When you set up the <filename>meta-intel</filename> Git repository you can | ||
212 | set it up anywhere you want. | ||
213 | We will set up the <filename>meta-intel</filename> Git repository inside the | ||
214 | <filename>poky</filename> Git repository in this example. | ||
209 | </para> | 215 | </para> |
210 | 216 | ||
211 | <para> | 217 | <para> |
212 | The following transcript shows the steps to clone the <filename>meta-intel</filename> | 218 | The following transcript shows the steps to clone the <filename>meta-intel</filename> |
213 | Git repository inside the <filename>poky</filename> Git repository created earlier in this | 219 | Git repository inside the <filename>poky</filename> Git repository created earlier in this |
214 | example. | 220 | example. |
215 | While this example establishes the <filename>meta-intel</filename> Git repository inside | ||
216 | the <filename>poky</filename> Git repository, you are not required to have | ||
217 | <filename>meta-intel</filename> inside of <filename>poky</filename>: | ||
218 | <literallayout class='monospaced'> | 221 | <literallayout class='monospaced'> |
219 | $cd poky | 222 | $cd poky |
220 | $ git clone git://git.yoctoproject.org/meta-intel.git | 223 | $ git clone git://git.yoctoproject.org/meta-intel.git |
@@ -230,12 +233,13 @@ | |||
230 | <para> | 233 | <para> |
231 | Because <filename>meta-intel</filename> is its own Git repository you will want | 234 | Because <filename>meta-intel</filename> is its own Git repository you will want |
232 | to be sure you are in the appropriate branch for your work. | 235 | to be sure you are in the appropriate branch for your work. |
233 | For this example we are going to use the <filename>bernard</filename> branch. | 236 | For this example we are going to use the <filename>[NEED BRANCH]</filename> branch. |
234 | <literallayout class='monospaced'> | 237 | <literallayout class='monospaced'> |
235 | $ cd meta-intel | 238 | $ cd meta-intel |
236 | $ git checkout -b bernard | 239 | $ git checkout -b bernard origin/bernard |
237 | Switched to a new branch 'bernard' | 240 | Switched to a new branch 'bernard' |
238 | </literallayout> | 241 | </literallayout> |
242 | [WRITER'S NOTE: I NEED THE REAL BRANCH NAMES IN THE EXAMPLE.] | ||
239 | </para> | 243 | </para> |
240 | </section> | 244 | </section> |
241 | 245 | ||
@@ -264,9 +268,9 @@ | |||
264 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, | 268 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, |
265 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. | 269 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. |
266 | The recipes and configurations for these four BSPs are located and dispersed | 270 | The recipes and configurations for these four BSPs are located and dispersed |
267 | within <filename>meta</filename>, which can be found in the Yocto Project source directory. | 271 | within <filename>meta-yocto</filename>, which can be found in the Yocto Project source directory. |
268 | Consequently, they are not totally isolated in the spirit of layers unless you think | 272 | Consequently, they are not totally isolated in the spirit of layers unless you think |
269 | of <filename>meta</filename> as a layer itself. | 273 | of <filename>meta-yocto</filename> as a layer itself. |
270 | On the other hand, the Yocto Project has isolated BSP layers within | 274 | On the other hand, the Yocto Project has isolated BSP layers within |
271 | <filename>meta-intel</filename> for the Crown Bay, Emenlow, Jasper Forest, N450, and | 275 | <filename>meta-intel</filename> for the Crown Bay, Emenlow, Jasper Forest, N450, and |
272 | Sugar Bay. | 276 | Sugar Bay. |
@@ -297,7 +301,9 @@ | |||
297 | The following example assumes your working directory is <filename>meta-intel</filename> | 301 | The following example assumes your working directory is <filename>meta-intel</filename> |
298 | inside the <filename>meta-intel</filename> Git repository. | 302 | inside the <filename>meta-intel</filename> Git repository. |
299 | If you downloaded and expanded a Crown Bay tarball then you simply copy the resulting | 303 | If you downloaded and expanded a Crown Bay tarball then you simply copy the resulting |
300 | <filename>meta-crownbay</filename> directory structure to a location of your choice: | 304 | <filename>meta-crownbay</filename> directory structure to a location of your choice. |
305 | Good practice for a Git repository is to just copy the new layer alongside the existing | ||
306 | BSP layers in the <filename>meta-intel</filename> Git repository: | ||
301 | <literallayout class='monospaced'> | 307 | <literallayout class='monospaced'> |
302 | $ cp -a meta-crownbay/ meta-mymachine | 308 | $ cp -a meta-crownbay/ meta-mymachine |
303 | </literallayout> | 309 | </literallayout> |
@@ -333,75 +339,16 @@ | |||
333 | 339 | ||
334 | <para> | 340 | <para> |
335 | The next step makes changes to <filename>mymachine.conf</filename> itself. | 341 | The next step makes changes to <filename>mymachine.conf</filename> itself. |
336 | The only changes needed for this example are changes to the comment lines and to the | 342 | The only changes needed for this example are changes to the comment lines. |
337 | Source Revision (<filename>SRCREV</filename>) lines at the bottom of the file. | 343 | Here we simply substitute the Crown Bay name with an appropriate name. |
338 | </para> | 344 | </para> |
339 | 345 | ||
340 | <para> | 346 | <para> |
341 | For the comments the string <filename>crownbay-noemgd</filename> needs to be changed to | 347 | Note that inside the <filename>mymachine.conf</filename> is the |
342 | <filename>mymachine</filename>. | 348 | <filename>PREFERRED_PROVIDER_virtual/kernel</filename> statement. |
343 | </para> | 349 | This statement identifies the kernel that the BSP is going to use. |
344 | 350 | In this case the BSP is using <filename>linux-yocto</filename>, which is the | |
345 | <para> | 351 | current Linux Yocto kernel based on the Linux 2.6.37 release. |
346 | To understand how to complete the changes to the <filename>SRCREV</filename> | ||
347 | statements we need to know which kernel we are using. | ||
348 | The <filename>PREFERRED_PROVIDER_virtual/kernel</filename> statement in the file specifies | ||
349 | the kernel we are going to use. | ||
350 | We are going to use <filename>linux-yocto</filename>. | ||
351 | The <filename>SRCREV</filename> statement pairs point to the exact machine branch | ||
352 | (commit) and <filename>meta</filename> branch in the <filename>poky</filename> Git repository. | ||
353 | Right now the <filename>SRCREV</filename> variables are as follows in | ||
354 | <filename>mymachine.conf</filename>: | ||
355 | <literallayout class='monospaced'> | ||
356 | SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \ "56fe215d3f1a2cc3a5a26482ac9809ba44495695" | ||
357 | SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \ "e1f85a470934a0cf6abde5d95533e74501822c6b" | ||
358 | |||
359 | SRCREV_machine_pn-linux-yocto-stable_crownbay-noemgd ?= \ "56fe215d3f1a2cc3a5a26482ac9809ba44495695" | ||
360 | SRCREV_meta_pn-linux-yocto-stable_crownbay-noemgd ?= \ "e1f85a470934a0cf6abde5d95533e74501822c6b" | ||
361 | </literallayout> | ||
362 | </para> | ||
363 | |||
364 | <para> | ||
365 | You will notice that there are two pairs of <filename>SRCREV</filename> statements. | ||
366 | The first pair points to a current development kernel, which we don’t care about | ||
367 | in this example. | ||
368 | The bottom pair points to the stable kernel that we will use: | ||
369 | <filename>linux-yocto-stable</filename>. | ||
370 | At this point though, the unique commit strings all are still associated with | ||
371 | Crown Bay. | ||
372 | So the next changes we make to the configuration file gets rid of the pair that points | ||
373 | to the development kernel and provides new commit strings that points to the | ||
374 | <filename>atom-pc-standard</filename>, which we are choosing for the initial build of this BSP. | ||
375 | Here are the final <filename>SRCREV</filename> statements: | ||
376 | <literallayout class='monospaced'> | ||
377 | SRCREV_machine_pn-linux-yocto-stable_mymachine ?= \ "72ca49ab08b8eb475cec82a10049503602325791" | ||
378 | SRCREV_meta_pn-linux-yocto-stable_mymachine ?= \ "ec26387cb168e9e0976999b528b5a9dd62e3157a" | ||
379 | </literallayout> | ||
380 | </para> | ||
381 | |||
382 | <para> | ||
383 | If you are familiar with Git repositories you probably won’t have trouble locating the | ||
384 | exact commit strings you need to change the <filename>SRCREV</filename> statements. | ||
385 | You can find all the <filename>machine</filename> and <filename>meta</filename> | ||
386 | branch points (commits) for the <filename>linux-yocto-2.6.34</filename> kernel | ||
387 | <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.34'>here</ulink>. | ||
388 | </para> | ||
389 | |||
390 | <para> | ||
391 | If you need a little more assistance after going to the link then do the following: | ||
392 | <orderedlist> | ||
393 | <listitem><para>Expand the list of branches by clicking <filename>[…]</filename></para></listitem> | ||
394 | <listitem><para>Click on the <filename>atom-pc-standard</filename> branch</para></listitem> | ||
395 | <listitem><para>Click on the commit column header to view the top commit</para></listitem> | ||
396 | <listitem><para>Copy the commit string for use in the <filename>mymachine.conf</filename> | ||
397 | file</para></listitem> | ||
398 | </orderedlist> | ||
399 | </para> | ||
400 | |||
401 | <para> | ||
402 | For the <filename>SRCREV</filename> statement that points to the <filename>meta</filename> | ||
403 | branch use the same procedure except expand the <filename>wrs_meta</filename> | ||
404 | branch in step 2 above. | ||
405 | </para> | 352 | </para> |
406 | 353 | ||
407 | <para> | 354 | <para> |
@@ -415,25 +362,16 @@ | |||
415 | </para> | 362 | </para> |
416 | 363 | ||
417 | <para> | 364 | <para> |
418 | First, remove these statements from the file: | 365 | The file contains these statements that reference the Crown Bay BSP: |
419 | <literallayout class='monospaced'> | 366 | <literallayout class='monospaced'> |
420 | BBFILE_COLLECTIONS_crownbayd += "crownbay" | 367 | BBFILE_COLLECTIONS += "crownbay" |
421 | BBFILE_PATTERN_crownbay := "^${LAYERDIR}/" | 368 | BBFILE_PATTERN_crownbay := "^${LAYERDIR}/" |
422 | BBFILE_PRIORITY_crownbay = "6" | 369 | BBFILE_PRIORITY_crownbay = "6" |
423 | </literallayout> | 370 | </literallayout> |
424 | </para> | 371 | </para> |
425 | 372 | ||
426 | <para> | 373 | <para> |
427 | This leaves three similar statements that we care about: | 374 | Simply substitute the machine string name <filename>crownbay</filename> |
428 | <literallayout class='monospaced'> | ||
429 | BBFILE_COLLECTIONS_crownbay-noemgd += "crownbay-noemgd" | ||
430 | BBFILE_PATTERN_crownbay-noemgd := "^${LAYERDIR}/" | ||
431 | BBFILE_PRIORITY_crownbay-noemgd = "6" | ||
432 | </literallayout> | ||
433 | </para> | ||
434 | |||
435 | <para> | ||
436 | Simply substitute the machine string name <filename>crownbay-noemgd</filename> | ||
437 | with the new machine name <filename>mymachine</filename> to get the following: | 375 | with the new machine name <filename>mymachine</filename> to get the following: |
438 | <literallayout class='monospaced'> | 376 | <literallayout class='monospaced'> |
439 | BBFILE_COLLECTIONS_mymachine += "mymachine" | 377 | BBFILE_COLLECTIONS_mymachine += "mymachine" |
@@ -444,84 +382,186 @@ | |||
444 | 382 | ||
445 | <para> | 383 | <para> |
446 | Now we will take a look at the recipes in your new layer. | 384 | Now we will take a look at the recipes in your new layer. |
447 | The standard BSP structure has areas for BSP, graphics, and kernel recipes. | 385 | The standard BSP structure has areas for BSP, graphics, core, and kernel recipes. |
448 | When you create a BSP you use these areas for appropriate recipes and append files. | 386 | When you create a BSP you use these areas for appropriate recipes and append files. |
449 | Recipes take the form of <filename>.bb</filename> files. | 387 | Recipes take the form of <filename>.bb</filename> files. |
450 | If you want to leverage off of existing recipes elsewhere in the Yocto Project | 388 | If you want to leverage off of existing recipes elsewhere in the Yocto Project |
451 | source tree but change them you can use <filename>.bbappend</filename> files. | 389 | source tree but change them you can use <filename>.bbappend</filename> files. |
452 | All new recipes and append files for your layer go in the layer’s | 390 | All new recipes and append files for your layer go in the layer’s |
453 | <filename>recipes-bsp</filename>, <filename>recipes-kernel</filename>, and | 391 | <filename>recipes-bsp</filename>, <filename>recipes-kernel</filename>, |
392 | <filename>recipes-core</filename>, and | ||
454 | <filename>recipes-graphics</filename> directories. | 393 | <filename>recipes-graphics</filename> directories. |
455 | </para> | 394 | </para> |
456 | 395 | ||
457 | <para> | 396 | <para> |
397 | First, let us look at <filename>recipes-bsp</filename>. | ||
458 | For this example we are not adding any new BSP recipes. | 398 | For this example we are not adding any new BSP recipes. |
459 | And, we only need to remove the formfactor we do not want and change the name of | 399 | And, we only need to remove the formfactor we do not want and change the name of |
460 | the remaining one that supports no EMGD. | 400 | the remaining one that supports no EMGD. |
461 | These commands take care of the new layer’s BSP recipes: | 401 | These commands take care of the new layer’s BSP recipes: |
462 | <literallayout class='monospaced'> | 402 | <literallayout class='monospaced'> |
463 | $ rm -rf meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay | 403 | $ rm ‐rf meta-mymachine/recipes-graphics/xorg-xserver/*emgd* |
464 | $ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ \ | 404 | $ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ \ |
465 | meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine | 405 | meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine |
466 | </literallayout> | 406 | </literallayout> |
467 | </para> | 407 | </para> |
468 | 408 | ||
469 | <para> | 409 | <para> |
470 | For this example we want to remove anything that supports EMGD. | 410 | Now let us look at <filename>recipes-graphics</filename>. |
471 | The following command cleans up the <filename>recipes-graphics</filename> directory: | 411 | For this example we want to remove anything that supports EMGD and |
412 | be sure to rename remaining directories appropriately. | ||
413 | The following commands clean up the <filename>recipes-graphics</filename> directory: | ||
472 | <literallayout class='monospaced'> | 414 | <literallayout class='monospaced'> |
473 | $ rm –rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-emgd* | 415 | $ rm ‐rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-emgd* |
416 | $ rm ‐rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay | ||
417 | $ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd \ | ||
418 | meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine | ||
474 | </literallayout> | 419 | </literallayout> |
475 | </para> | 420 | </para> |
476 | 421 | ||
477 | <para> | 422 | <para> |
478 | At this point the <filename>recipes-graphics</filename> directory just has files that | 423 | At this point the <filename>recipes-graphics</filename> directory just has files that |
479 | support Video Electronics Standards Association (VESA) graphics modes. | 424 | support Video Electronics Standards Association (VESA) graphics modes. |
480 | However, we still need to rename a directory in the layer. | 425 | </para> |
481 | This command applies the final change to the <filename>recipes-graphics</filename> directory: | 426 | |
427 | <para> | ||
428 | Now let us look at changes in <filename>recipes-core</filename>. | ||
429 | The file <filename>task-core-tools.bbappend</filename> in | ||
430 | <filename>recipes-core/tasks</filename> appends the similarly named recipe | ||
431 | located in the Yocto Project Git repository at <filename>meta/recipes-core/tasks</filename>. | ||
432 | The "append" file in our layer right now is Crown Bay-specific and supports | ||
433 | EMGD and non-EMGD. | ||
434 | Here are the contents of the file: | ||
482 | <literallayout class='monospaced'> | 435 | <literallayout class='monospaced'> |
483 | $ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd \ | 436 | RRECOMMENDS_task-core-tools-profile_append_crownbay = " systemtap" |
484 | meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine | 437 | RRECOMMENDS_task-core-tools-profile_append_crownbay-noemgd = " systemtap" |
438 | </literallayout> | ||
439 | </para> | ||
440 | |||
441 | <para> | ||
442 | The <filename>RRECOMMENDS</filename> statements list packages that | ||
443 | extend usability. | ||
444 | The first <filename>RRECOMMENDS</filename> statement can be removed, while the | ||
445 | second one can be changed to reflect <filename>meta-mymachine</filename>: | ||
446 | <literallayout class='monospaced'> | ||
447 | RRECOMMENDS_task-core-tools-profile_append_mymachine = " systemtap" | ||
485 | </literallayout> | 448 | </literallayout> |
486 | </para> | 449 | </para> |
487 | 450 | ||
488 | <para> | 451 | <para> |
489 | Finally, let us look at the <filename>recipes-kernel</filename> directory in the example. | 452 | Finally, let us look at <filename>recipes-kernel</filename> changes. |
490 | The only file we are concerned with for the example is | 453 | Recall that the BSP uses the <filename>linux-yocto</filename> kernel as determined |
491 | <filename>linux-yocto-stable_git.bbappend</filename>. | 454 | earlier in the <filename>mymachine.conf</filename>. |
492 | The other files all support the EMGD feature of Crown Bay. | 455 | The recipe for that kernel is located is not located in the |
493 | These commands clean up the directory: | 456 | BSP layer but rather in Yocto Project Git repository at |
457 | <filename>meta/recipes-kernel/linux</filename> and is | ||
458 | named <filename>linux-yocto-2.6.37.bb</filename>. | ||
459 | The <filename>SRCREV_machine</filename> and <filename>SRCREV_meta</filename> | ||
460 | statements point to the exact commits in the Yocto Project Git repository from | ||
461 | which the source for the kernel can be found. | ||
462 | </para> | ||
463 | |||
464 | <para> | ||
465 | However, in the <filename>meta-mymachine</filename> layer in | ||
466 | <filename>recipes-kernel/linux</filename> resides a <filename>.bbappend</filename> | ||
467 | file named <filename>linux-yocto-2.6.37.bbappend</filename> that | ||
468 | is appended to the recipe of the same name in <filename>meta/recipes-kernel/link</filename>. | ||
469 | Thus, the <filename>SRCREV</filename> statements in the "append" file override | ||
470 | the more general statements found in <filename>meta</filename>. | ||
471 | </para> | ||
472 | |||
473 | <para> | ||
474 | The <filename>SRCREV</filename> statements in the "append" file currently point | ||
475 | to the kernel that supports the Crown Bay BSP with and without EMGD support. | ||
476 | Here are the statements: | ||
494 | <literallayout class='monospaced'> | 477 | <literallayout class='monospaced'> |
495 | $ rm –rf meta-mymachine/recipes-kernel/linux/linux-yocto | 478 | SRCREV_machine_pn-linux-yocto_crownbay ?= \ |
496 | $ rm –rf meta-mymachine/recipes-kernel/linux/linux-yocto-stable | 479 | "372c0ab135978bd8ca3a77c88816a25c5ed8f303" |
497 | $ rm meta-mymachine/recipes-kernel/linux/linux-yocto_git.bbappend | 480 | SRCREV_meta_pn-linux-yocto_crownbay ?= \ |
481 | "d5d3c6480d61f83503ccef7fbcd765f7aca8b71b" | ||
482 | |||
483 | SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \ | ||
484 | "372c0ab135978bd8ca3a77c88816a25c5ed8f303" | ||
485 | SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \ | ||
486 | "d5d3c6480d61f83503ccef7fbcd765f7aca8b71b" | ||
498 | </literallayout> | 487 | </literallayout> |
499 | </para> | 488 | </para> |
500 | 489 | ||
501 | <para> | 490 | <para> |
502 | The <filename>linux-yocto-stable_git.bbappend</filename> file appends a Yocto Project | 491 | You will notice that there are two pairs of <filename>SRCREV</filename> statements. |
503 | recipe having the same name. | 492 | The top pair points to a kernel that supports |
504 | The changes we need to make are to remove the statements that support EMGD | 493 | EMGD, which we don’t care about in this example. |
505 | and change the remaining Crown Bay strings to be <filename>mymachine</filename>. | 494 | The bottom pair points to the kernel that we will use: |
506 | We also do not need to include the pointer to the EMGD licenses patch at the end of | 495 | <filename>linux-yocto</filename>. |
507 | the file. | 496 | At this point though, the unique commit strings all are still associated with |
508 | Here is the original file: | 497 | Crown Bay. |
498 | </para> | ||
499 | |||
500 | <para> | ||
501 | So the next changes we make modify this <filename>linux-yocto-2.6.37.bbappend</filename> | ||
502 | file. | ||
503 | First, we delete the two <filename>SRCREV</filename> statements that support | ||
504 | EMGD (the top pair). | ||
505 | Next, we change the remaining pair to specify <filename>mymachine</filename> | ||
506 | and then we insert the commit identifier to point to the kernel in which we | ||
507 | are interested, which will be based on the <filename>atom-pc-standard</filename> | ||
508 | kernel. | ||
509 | Here are the final <filename>SRCREV</filename> statements: | ||
509 | <literallayout class='monospaced'> | 510 | <literallayout class='monospaced'> |
510 | FILESEXTRAPATHS := “${THISDIR}/${PN}” | 511 | SRCREV_machine_pn-linux-yocto-_mymachine ?= \ |
511 | COMPATIBLE_MACHINE_crownbay = “crownbay” | 512 | "fce17f046d3756045e4dfb49221d1cf60fcae329" |
512 | KMACHINE_CROWNBAY = “CROWNBAY” | 513 | SRCREV_meta_pn-linux-yocto-stable_mymachine ?= \ |
513 | COMPATIBLE_MACHINE_crownbay-noemgd = “crownbay-noemgd” | 514 | "84f1a422d7e21fbc23a687035bdf9d42471f19e0" |
514 | KMACHINE_crownbay-noemgd = “crownbay” | ||
515 | SRC_URI += file://0001-crownbay-update-a-handful-of-EMGD-licenses.patch | ||
516 | </literallayout> | 515 | </literallayout> |
517 | </para> | 516 | </para> |
518 | 517 | ||
519 | <para> | 518 | <para> |
520 | After editing the file it looks like this: | 519 | If you are familiar with Git repositories you probably won’t have trouble locating the |
520 | exact commit strings you need to change the <filename>SRCREV</filename> statements. | ||
521 | You can find all the <filename>machine</filename> and <filename>meta</filename> | ||
522 | branch points (commits) for the <filename>linux-yocto-2.6.37</filename> kernel | ||
523 | <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.37'>here</ulink>. | ||
524 | </para> | ||
525 | |||
526 | <para> | ||
527 | If you need a little more assistance after going to the link then do the following: | ||
528 | <orderedlist> | ||
529 | <listitem><para>Expand the list of branches by clicking <filename>[…]</filename></para></listitem> | ||
530 | <listitem><para>Click on the <filename>yocto/standard/common-pc/atom-pc</filename> | ||
531 | branch</para></listitem> | ||
532 | <listitem><para>Click on the commit column header to view the top commit</para></listitem> | ||
533 | <listitem><para>Copy the commit string for use in the | ||
534 | <filename>linux-yocto-2.6.37.bbappend</filename> file</para></listitem> | ||
535 | </orderedlist> | ||
536 | </para> | ||
537 | |||
538 | <para> | ||
539 | For the <filename>SRCREV</filename> statement that points to the <filename>meta</filename> | ||
540 | branch use the same procedure except expand the <filename>meta</filename> | ||
541 | branch in step 2 above. | ||
542 | </para> | ||
543 | |||
544 | <para> | ||
545 | Also in the <filename>linux-yocto-2.6.47.bbappend</filename> file are | ||
546 | <filename>COMPATIBLE_MACHINE</filename>, <filename>KMACHINE</filename>, | ||
547 | and <filename>KERNEL_FEATURES</filename> statements. | ||
548 | Again, there are two sets of these: one for EMGD support and one for non-EMGD support. | ||
549 | Because we are not interested in supporting EMGD those three can be deleted. | ||
550 | The remaining three must be changed so that <filename>mymachine</filename> replaces | ||
551 | <filename>crownbay-noemgd</filename> and <filename>crownbay</filename>. | ||
552 | Here is the final <filename>linux-yocto-2.6.37.bbappend</filename> file after all | ||
553 | the edits: | ||
521 | <literallayout class='monospaced'> | 554 | <literallayout class='monospaced'> |
522 | FILESEXTRAPATHS := “${THISDIR}/${PN}” | 555 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" |
523 | COMPATIBLE_MACHINE_mymachine = “mymachine” | 556 | |
524 | KMACHINE_mymachine = “mymachine | 557 | COMPATIBLE_MACHINE_mymachine = "mymachine" |
558 | KMACHINE_mymachine = "yocto/standard/mymachine" | ||
559 | KERNEL_FEATURES_append_mymachine += " cfg/smp.scc" | ||
560 | |||
561 | SRCREV_machine_pn-linux-yocto_mymachine ?= \ | ||
562 | "fce17f046d3756045e4dfb49221d1cf60fcae329" | ||
563 | SRCREV_meta_pn-linux-yocto_mymachine ?= \ | ||
564 | "84f1a422d7e21fbc23a687035bdf9d42471f19e0" | ||
525 | </literallayout> | 565 | </literallayout> |
526 | </para> | 566 | </para> |
527 | 567 | ||
@@ -529,8 +569,10 @@ | |||
529 | In summary, the edits to the layer’s recipe files result in removal of any files and | 569 | In summary, the edits to the layer’s recipe files result in removal of any files and |
530 | statements that do not support your targeted hardware in addition to the inclusion | 570 | statements that do not support your targeted hardware in addition to the inclusion |
531 | of any new recipes you might need. | 571 | of any new recipes you might need. |
532 | In this example, it was simply a matter of ridding the new layer <filename>meta-machine</filename> | 572 | In this example, it was simply a matter of ridding the new layer |
533 | of any code that supported the EMGD features. | 573 | <filename>meta-machine</filename> of any code that supported the EMGD features |
574 | and making sure we were pointing to the kernel that supports our example, which | ||
575 | is the <filename>atom-pc-standard</filename> kernel. | ||
534 | We did not introduce any new recipes to the layer. | 576 | We did not introduce any new recipes to the layer. |
535 | </para> | 577 | </para> |
536 | 578 | ||
@@ -555,7 +597,8 @@ | |||
555 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'> | 597 | <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'> |
556 | Building an Image</ulink> section of the Yocto Project Quick Start. | 598 | Building an Image</ulink> section of the Yocto Project Quick Start. |
557 | You might want to reference this information. | 599 | You might want to reference this information. |
558 | The remainder of this section will apply to our example of the <filename>meta-mymachine</filename> layer. | 600 | The remainder of this section will apply to our example of the |
601 | <filename>meta-mymachine</filename> layer. | ||
559 | </para> | 602 | </para> |
560 | 603 | ||
561 | <para> | 604 | <para> |