From b67922f0c3ef71629a880ec618e632c7c2bf4c13 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Wed, 27 Jul 2011 09:32:27 -0700 Subject: documentation/dev-manual/dev-manual-bsp-appendix.xml: Added section hierarchy. The section for changing the recipes was deep and complex. So I broke it into several sub-sections. (From yocto-docs rev: f964b7644502fe5995c57de4a7a4fff47f71cf79) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../dev-manual/dev-manual-bsp-appendix.xml | 468 +++++++++++---------- 1 file changed, 250 insertions(+), 218 deletions(-) (limited to 'documentation/dev-manual/dev-manual-bsp-appendix.xml') diff --git a/documentation/dev-manual/dev-manual-bsp-appendix.xml b/documentation/dev-manual/dev-manual-bsp-appendix.xml index e9f4cb022a..9ccad105b7 100644 --- a/documentation/dev-manual/dev-manual-bsp-appendix.xml +++ b/documentation/dev-manual/dev-manual-bsp-appendix.xml @@ -184,165 +184,191 @@ Right now you have two identical BSP layers with different names: meta-crownbay and meta-mymachine. You need to change your configurations so that they work for your new BSP and - your particular hardware. - We will look first at the configurations, which are all done in the layer’s - conf directory. - - - - First, since in this example the new BSP will not support EMGD we will get rid of the - crownbay.conf file and then rename the - crownbay-noemgd.conf file to mymachine.conf. - Much of what we do in the configuration directory is designed to help the Yocto Project - build system work with the new layer and to be able to find and use the right software. - The following two commands result in a single machine configuration file named - mymachine.conf. - + your particular hardware. + The following sections look at each of these areas of the BSP. + + +
+ Changing the BSP Configuration + + + We will look first at the configurations, which are all done in the layer’s + conf directory. + + + + First, since in this example the new BSP will not support EMGD we will get rid of the + crownbay.conf file and then rename the + crownbay-noemgd.conf file to mymachine.conf. + Much of what we do in the configuration directory is designed to help the Yocto Project + build system work with the new layer and to be able to find and use the right software. + The following two commands result in a single machine configuration file named + mymachine.conf. + $ rm meta-mymachine/conf/machine/crownbay.conf $ mv meta-mymachine/conf/machine/crownbay-noemgd.conf \ meta-mymachine/conf/machine/mymachine.conf - - - - - The next step makes changes to mymachine.conf itself. - The only changes needed for this example are changes to the comment lines. - Here we simply substitute the Crown Bay name with an appropriate name. - - - - Note that inside the mymachine.conf is the - PREFERRED_PROVIDER_virtual/kernel statement. - This statement identifies the kernel that the BSP is going to use. - In this case the BSP is using linux-yocto, which is the - current Linux Yocto kernel based on the Linux 2.6.37 release. - - - - The next configuration file in the new BSP layer we need to edit is layer.conf. - This file identifies build information needed for the new layer. - You can see the - - Layer Configuration File section in the Board Support Packages (BSP) Development Guide - for more information on this configuration file. - Basically, we are changing the existing statements to work with our BSP. - - - - The file contains these statements that reference the Crown Bay BSP: - + + + + + The next step makes changes to mymachine.conf itself. + The only changes needed for this example are changes to the comment lines. + Here we simply substitute the Crown Bay name with an appropriate name. + + + + Note that inside the mymachine.conf is the + PREFERRED_PROVIDER_virtual/kernel statement. + This statement identifies the kernel that the BSP is going to use. + In this case the BSP is using linux-yocto, which is the + current Linux Yocto kernel based on the Linux 2.6.37 release. + + + + The next configuration file in the new BSP layer we need to edit is layer.conf. + This file identifies build information needed for the new layer. + You can see the + + Layer Configuration File section in the Board Support Packages (BSP) Development Guide + for more information on this configuration file. + Basically, we are changing the existing statements to work with our BSP. + + + + The file contains these statements that reference the Crown Bay BSP: + BBFILE_COLLECTIONS += "crownbay" BBFILE_PATTERN_crownbay := "^${LAYERDIR}/" BBFILE_PRIORITY_crownbay = "6" - - + + - - Simply substitute the machine string name crownbay - with the new machine name mymachine to get the following: - + + Simply substitute the machine string name crownbay + with the new machine name mymachine to get the following: + BBFILE_COLLECTIONS_mymachine += "mymachine" BBFILE_PATTERN_mymachine := "^${LAYERDIR}/" BBFILE_PRIORITY_mymachine = "6" - - - - - Now we will take a look at the recipes in your new layer. - The standard BSP structure has areas for BSP, graphics, core, and kernel recipes. - When you create a BSP you use these areas for appropriate recipes and append files. - Recipes take the form of .bb files. - If you want to leverage the existing recipes the Yocto Project build system uses - but change those recipes you can use .bbappend files. - All new recipes and append files for your layer must go in the layer’s - recipes-bsp, recipes-kernel, - recipes-core, and - recipes-graphics directories. - - - - First, let's look at recipes-bsp. - For this example we are not adding any new BSP recipes. - And, we only need to remove the formfactor we do not want and change the name of - the remaining one that doesn't support EMGD. - These commands take care of the recipes-bsp recipes: - + + +
+ +
+ Changing the Recipes in Your BSP + + + Now we will take a look at the recipes in your new layer. + The standard BSP structure has areas for BSP, graphics, core, and kernel recipes. + When you create a BSP you use these areas for appropriate recipes and append files. + Recipes take the form of .bb files. + If you want to leverage the existing recipes the Yocto Project build system uses + but change those recipes you can use .bbappend files. + All new recipes and append files for your layer must go in the layer’s + recipes-bsp, recipes-kernel, + recipes-core, and + recipes-graphics directories. + + +
+ Changing <filename>recipes-bsp</filename> + + + First, let's look at recipes-bsp. + For this example we are not adding any new BSP recipes. + And, we only need to remove the formfactor we do not want and change the name of + the remaining one that doesn't support EMGD. + These commands take care of the recipes-bsp recipes: + $ rm ‐rf meta-mymachine/recipes-graphics/xorg-xserver/*emgd* $ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ \ meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine - - + + +
- - Now let's look at recipes-graphics. - For this example we want to remove anything that supports EMGD and - be sure to rename remaining directories appropriately. - The following commands clean up the recipes-graphics directory: - +
+ Changing <filename>recipes-graphics</filename> + + + Now let's look at recipes-graphics. + For this example we want to remove anything that supports EMGD and + be sure to rename remaining directories appropriately. + The following commands clean up the recipes-graphics directory: + $ rm ‐rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-emgd* $ rm ‐rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay $ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd \ meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine - - - - - At this point the recipes-graphics directory just has files that - support Video Electronics Standards Association (VESA) graphics modes and not EMGD. - - - - Now let's look at changes in recipes-core. - The file task-core-tools.bbappend in - recipes-core/tasks appends the similarly named recipe - located in the local Yocto Project files at - meta/recipes-core/tasks. - The "append" file in our layer right now is Crown Bay-specific and supports - EMGD and non-EMGD. - Here are the contents of the file: - + + + + + At this point the recipes-graphics directory just has files that + support Video Electronics Standards Association (VESA) graphics modes and not EMGD. + +
+ +
+ Changing <filename>recipes-core</filename> + + + Now let's look at changes in recipes-core. + The file task-core-tools.bbappend in + recipes-core/tasks appends the similarly named recipe + located in the local Yocto Project files at + meta/recipes-core/tasks. + The "append" file in our layer right now is Crown Bay-specific and supports + EMGD and non-EMGD. + Here are the contents of the file: + RRECOMMENDS_task-core-tools-profile_append_crownbay = " systemtap" RRECOMMENDS_task-core-tools-profile_append_crownbay-noemgd = " systemtap" - - + + - - The RRECOMMENDS statements list packages that - extend usability. - The first RRECOMMENDS statement can be removed, while the - second one can be changed to reflect meta-mymachine: - + + The RRECOMMENDS statements list packages that + extend usability. + The first RRECOMMENDS statement can be removed, while the + second one can be changed to reflect meta-mymachine: + RRECOMMENDS_task-core-tools-profile_append_mymachine = " systemtap" - - - - - Finally, let's look at recipes-kernel changes. - Recall that the BSP uses the linux-yocto kernel as determined - earlier in the mymachine.conf. - The recipe for that kernel is not located in the - BSP layer but rather in the local Yocto Project files at - meta/recipes-kernel/linux and is - named linux-yocto-2.6.37.bb. - The SRCREV_machine and SRCREV_meta - statements point to the exact commits used by the Yocto Project development team - in their source repositories that identify the right kernel for our hardware. - + + +
+ +
+ Changing <filename>recipes-kernel</filename> + + + Finally, let's look at recipes-kernel changes. + Recall that the BSP uses the linux-yocto kernel as determined + earlier in the mymachine.conf. + The recipe for that kernel is not located in the + BSP layer but rather in the local Yocto Project files at + meta/recipes-kernel/linux and is + named linux-yocto-2.6.37.bb. + The SRCREV_machine and SRCREV_meta + statements point to the exact commits used by the Yocto Project development team + in their source repositories that identify the right kernel for our hardware. + - - However, in the meta-mymachine layer in - recipes-kernel/linux resides a .bbappend - file named linux-yocto-2.6.37.bbappend that - is appended to the recipe of the same name in meta/recipes-kernel/link. - Thus, the SRCREV statements in the "append" file override - the more general statements found in meta. - - - - The SRCREV statements in the "append" file currently identify - the kernel that supports the Crown Bay BSP with and without EMGD support. - Here are the statements: - + + However, in the meta-mymachine layer in + recipes-kernel/linux resides a .bbappend + file named linux-yocto-2.6.37.bbappend that + is appended to the recipe of the same name in meta/recipes-kernel/link. + Thus, the SRCREV statements in the "append" file override + the more general statements found in meta. + + + + The SRCREV statements in the "append" file currently identify + the kernel that supports the Crown Bay BSP with and without EMGD support. + Here are the statements: + SRCREV_machine_pn-linux-yocto_crownbay ?= \ "372c0ab135978bd8ca3a77c88816a25c5ed8f303" SRCREV_meta_pn-linux-yocto_crownbay ?= \ @@ -352,74 +378,74 @@ "372c0ab135978bd8ca3a77c88816a25c5ed8f303" SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \ "d5d3c6480d61f83503ccef7fbcd765f7aca8b71b" - - - - - You will notice that there are two pairs of SRCREV statements. - The top pair identifies the kernel that supports - EMGD, which we don’t care about in this example. - The bottom pair identifies the kernel that we will use: - linux-yocto. - At this point though, the unique commit strings all are still associated with - Crown Bay and not meta-mymachine. - - - - To fix this situation in linux-yocto-2.6.37.bbappend - we delete the two SRCREV statements that support - EMGD (the top pair). - We also change the remaining pair to specify mymachine - and insert the commit identifiers to identify the kernel in which we - are interested, which will be based on the atom-pc-standard - kernel. - Here are the final SRCREV statements: - + + + + + You will notice that there are two pairs of SRCREV statements. + The top pair identifies the kernel that supports + EMGD, which we don’t care about in this example. + The bottom pair identifies the kernel that we will use: + linux-yocto. + At this point though, the unique commit strings all are still associated with + Crown Bay and not meta-mymachine. + + + + To fix this situation in linux-yocto-2.6.37.bbappend + we delete the two SRCREV statements that support + EMGD (the top pair). + We also change the remaining pair to specify mymachine + and insert the commit identifiers to identify the kernel in which we + are interested, which will be based on the atom-pc-standard + kernel. + Here are the final SRCREV statements: + SRCREV_machine_pn-linux-yocto-_mymachine ?= \ "fce17f046d3756045e4dfb49221d1cf60fcae329" SRCREV_meta_pn-linux-yocto-stable_mymachine ?= \ "84f1a422d7e21fbc23a687035bdf9d42471f19e0" - - - - - If you are familiar with Git repositories you probably won’t have trouble locating the - exact commit strings in the Yocto Project source repositories you need to change - the SRCREV statements. - You can find all the machine and meta - branch points (commits) for the linux-yocto-2.6.37 kernel - here. - - - - If you need a little more assistance after going to the link then do the following: - - Expand the list of branches by clicking […] - Click on the yocto/standard/common-pc/atom-pc - branch - Click on the commit column header to view the top commit - Copy the commit string for use in the - linux-yocto-2.6.37.bbappend file - - - - - For the SRCREV statement that points to the meta - branch use the same procedure except expand the meta - branch in step 2 above. - - - - Also in the linux-yocto-2.6.37.bbappend file are - COMPATIBLE_MACHINE, KMACHINE, - and KERNEL_FEATURES statements. - Two sets of these exist: one set supports EMGD and one set does not. - Because we are not interested in supporting EMGD those three can be deleted. - The remaining three must be changed so that mymachine replaces - crownbay-noemgd and crownbay. - Here is the final linux-yocto-2.6.37.bbappend file after all - the edits: - + + + + + If you are familiar with Git repositories you probably won’t have trouble locating the + exact commit strings in the Yocto Project source repositories you need to change + the SRCREV statements. + You can find all the machine and meta + branch points (commits) for the linux-yocto-2.6.37 kernel + here. + + + + If you need a little more assistance after going to the link then do the following: + + Expand the list of branches by clicking […] + Click on the yocto/standard/common-pc/atom-pc + branch + Click on the commit column header to view the top commit + Copy the commit string for use in the + linux-yocto-2.6.37.bbappend file + + + + + For the SRCREV statement that points to the meta + branch use the same procedure except expand the meta + branch in step 2 above. + + + + Also in the linux-yocto-2.6.37.bbappend file are + COMPATIBLE_MACHINE, KMACHINE, + and KERNEL_FEATURES statements. + Two sets of these exist: one set supports EMGD and one set does not. + Because we are not interested in supporting EMGD those three can be deleted. + The remaining three must be changed so that mymachine replaces + crownbay-noemgd and crownbay. + Here is the final linux-yocto-2.6.37.bbappend file after all + the edits: + FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" COMPATIBLE_MACHINE_mymachine = "mymachine" @@ -430,24 +456,30 @@ "fce17f046d3756045e4dfb49221d1cf60fcae329" SRCREV_meta_pn-linux-yocto_mymachine ?= \ "84f1a422d7e21fbc23a687035bdf9d42471f19e0" - - - - - In summary, the edits to the layer’s recipe files result in removal of any files and - statements that do not support your targeted hardware in addition to the inclusion - of any new recipes you might need. - In this example, it was simply a matter of ridding the new layer - meta-machine of any code that supported the EMGD features - and making sure we were identifying the kernel that supports our example, which - is the atom-pc-standard kernel. - We did not introduce any new recipes to the layer. - - - - Finally, it is also important to update the layer’s README - file so that the information in it reflects your BSP. - + + +
+
+ +
+ BSP Recipe Change Summary + + + In summary, the edits to the layer’s recipe files result in removal of any files and + statements that do not support your targeted hardware in addition to the inclusion + of any new recipes you might need. + In this example, it was simply a matter of ridding the new layer + meta-machine of any code that supported the EMGD features + and making sure we were identifying the kernel that supports our example, which + is the atom-pc-standard kernel. + We did not introduce any new recipes to the layer. + + + + Finally, it is also important to update the layer’s README + file so that the information in it reflects your BSP. + +
-- cgit v1.2.3-54-g00ecf