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.
+ your particular hardware.
+ The following sections look at each of these areas of the BSP.
-
- 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.
-
+
+ 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.
-
+
+ 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.
-
+
+ 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 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 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.
-
+
+ Changing the Recipes in Your BSP
-
- 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:
-
+
+ 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 recipes-bsp
+
+
+ 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 recipes-graphics
+
+
+ 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.
-
+
+ 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:
-
+
+ Changing recipes-core
+
+
+ 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 recipes-kernel
+
+
+ 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.
-
+
+ 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:
-
+
+ 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.
-
+
+ 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:
-
+
+ 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 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
-
-
+
+ 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.
-
+
+ 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:
-
+
+ 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.
-
+
+ BSP Recipe Change Summary
-
- Finally, it is also important to update the layer’s README
- file so that the information in it reflects your BSP.
-
+
+ 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.
+
+