diff options
| author | Zhai Edwin <edwin.zhai@intel.com> | 2010-09-09 16:23:01 +0800 |
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-09-10 12:20:44 +0100 |
| commit | 8c7e1aced86cbef5f7856bb59c2190bb408dd024 (patch) | |
| tree | 27720d67eccdc586709168bdd03a27bd57ba3184 /handbook | |
| parent | 2beaecb35133aa9006a8b3ce79b4dee202fc35b2 (diff) | |
| download | poky-8c7e1aced86cbef5f7856bb59c2190bb408dd024.tar.gz | |
handbook: review and modify CH4 (BSP) and Appendix B
Besides basic corrections, also add .bbappend to bsp introduction
and update bitbake help to match latest output
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Diffstat (limited to 'handbook')
| -rw-r--r-- | handbook/bsp.xml | 60 | ||||
| -rw-r--r-- | handbook/ref-bitbake.xml | 35 |
2 files changed, 66 insertions, 29 deletions
diff --git a/handbook/bsp.xml b/handbook/bsp.xml index 37dd166749..b897f0691d 100644 --- a/handbook/bsp.xml +++ b/handbook/bsp.xml | |||
| @@ -28,18 +28,18 @@ | |||
| 28 | OpenEmbedded build systems. It is intended that this information can be | 28 | OpenEmbedded build systems. It is intended that this information can be |
| 29 | used by other systems besides Poky/OpenEmbedded and that it will be simple | 29 | used by other systems besides Poky/OpenEmbedded and that it will be simple |
| 30 | to extract information and convert to other formats if required. The format | 30 | to extract information and convert to other formats if required. The format |
| 31 | descriped can be directly accepted as a layer by Poky using its standard | 31 | described can be directly accepted as a layer by Poky using its standard |
| 32 | layers mechanism but its important to recognise that the BSP captures all | 32 | layers mechanism, but it is important to recognise that the BSP captures all |
| 33 | the hardware specific details in one place in a standard format which is | 33 | the hardware specific details in one place in a standard format, which is |
| 34 | useful for any person wishing to use the hardware platform regardless of | 34 | useful for any person wishing to use the hardware platform regardless of |
| 35 | the build system in use. | 35 | the build system in use. |
| 36 | </para> | 36 | </para> |
| 37 | 37 | ||
| 38 | <para> | 38 | <para> |
| 39 | The BSP specification does not include a build system or other tooling, | 39 | The BSP specification does not include a build system or other tools, |
| 40 | it is concerned with the hardware specific components only. At the end | 40 | it is concerned with the hardware specific components only. At the end |
| 41 | distribution point the BSP may be shipped combined with a build system | 41 | distribution point the BSP may be shipped combined with a build system |
| 42 | and other tools but it is important to maintain the distinction that these | 42 | and other tools, but it is important to maintain the distinction that these |
| 43 | are separate components which may just be combined in certain end products. | 43 | are separate components which may just be combined in certain end products. |
| 44 | </para> | 44 | </para> |
| 45 | 45 | ||
| @@ -47,7 +47,7 @@ | |||
| 47 | <title>Example Filesystem Layout</title> | 47 | <title>Example Filesystem Layout</title> |
| 48 | 48 | ||
| 49 | <para> | 49 | <para> |
| 50 | The BSP consists of a file structure inside a base directory, meta-bsp in this example where "bsp" is a placeholder for the machine or platform name. Examples of some files that it could contain are: | 50 | The BSP consists of a file structure inside a base directory, meta-bsp in this example, where "bsp" is a placeholder for the machine or platform name. Examples of some files that it could contain are: |
| 51 | </para> | 51 | </para> |
| 52 | 52 | ||
| 53 | <para> | 53 | <para> |
| @@ -108,9 +108,9 @@ BBPATH := "${BBPATH}${LAYERDIR}" | |||
| 108 | # We have a packages directory, add to BBFILES | 108 | # We have a packages directory, add to BBFILES |
| 109 | BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb" | 109 | BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb" |
| 110 | 110 | ||
| 111 | BBFILE_COLLECTIONS += "meta-bsp" | 111 | BBFILE_COLLECTIONS += "bsp" |
| 112 | BBFILE_PATTERN_meta-bsp := "^${LAYERDIR}/" | 112 | BBFILE_PATTERN_bsp := "^${LAYERDIR}/" |
| 113 | BBFILE_PRIORITY_meta-bsp = "5" | 113 | BBFILE_PRIORITY_bsp = "5" |
| 114 | </programlisting> | 114 | </programlisting> |
| 115 | </para> | 115 | </para> |
| 116 | 116 | ||
| @@ -129,7 +129,7 @@ BBFILE_PRIORITY_meta-bsp = "5" | |||
| 129 | 129 | ||
| 130 | <para> | 130 | <para> |
| 131 | The machine files bind together all the information contained elsewhere | 131 | The machine files bind together all the information contained elsewhere |
| 132 | in the BSP into a format that Poky/OpenEmbedded can understand it in. If | 132 | in the BSP into a format that Poky/OpenEmbedded can understand. If |
| 133 | the BSP supports multiple machines, multiple machine configuration files | 133 | the BSP supports multiple machines, multiple machine configuration files |
| 134 | can be present. These filenames correspond to the values users set the | 134 | can be present. These filenames correspond to the values users set the |
| 135 | MACHINE variable to. | 135 | MACHINE variable to. |
| @@ -139,7 +139,7 @@ BBFILE_PRIORITY_meta-bsp = "5" | |||
| 139 | These files would define things like which kernel package to use | 139 | These files would define things like which kernel package to use |
| 140 | (PREFERRED_PROVIDER of virtual/kernel), which hardware drivers to | 140 | (PREFERRED_PROVIDER of virtual/kernel), which hardware drivers to |
| 141 | include in different types of images, any special software components | 141 | include in different types of images, any special software components |
| 142 | that are needed, any bootloader information and also any special image | 142 | that are needed, any bootloader information, and also any special image |
| 143 | format requirements. | 143 | format requirements. |
| 144 | </para> | 144 | </para> |
| 145 | 145 | ||
| @@ -165,7 +165,7 @@ TARGET_CC_ARCH = "-m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse" | |||
| 165 | </para> | 165 | </para> |
| 166 | <para> | 166 | <para> |
| 167 | which defines a new package architecture called "core2" and uses the | 167 | which defines a new package architecture called "core2" and uses the |
| 168 | optimisation flags specified which are carefully chosen to give best | 168 | optimization flags specified, which are carefully chosen to give best |
| 169 | performance on atom cpus. | 169 | performance on atom cpus. |
| 170 | </para> | 170 | </para> |
| 171 | <para> | 171 | <para> |
| @@ -182,7 +182,7 @@ TARGET_CC_ARCH = "-m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse" | |||
| 182 | 182 | ||
| 183 | <para> | 183 | <para> |
| 184 | These files make up the definition of a kernel to use with this | 184 | These files make up the definition of a kernel to use with this |
| 185 | hardware. In this case its a complete self contained kernel with its own | 185 | hardware. In this case it is a complete self contained kernel with its own |
| 186 | configuration and patches but kernels can be shared between many | 186 | configuration and patches but kernels can be shared between many |
| 187 | machines as well. Taking some specific example files: | 187 | machines as well. Taking some specific example files: |
| 188 | </para> | 188 | </para> |
| @@ -197,7 +197,7 @@ meta-bsp/packages/linux/linux-bsp_2.6.50.bb | |||
| 197 | be a release tarball, some git repository or source included in | 197 | be a release tarball, some git repository or source included in |
| 198 | the directory within the BSP itself. It then contains information about which | 198 | the directory within the BSP itself. It then contains information about which |
| 199 | patches to apply and how to configure and build it. It can reuse the main | 199 | patches to apply and how to configure and build it. It can reuse the main |
| 200 | Poky kernel build class meaning the definitions here can remain very simple. | 200 | Poky kernel build class, so the definitions here can remain very simple. |
| 201 | </para> | 201 | </para> |
| 202 | <para> | 202 | <para> |
| 203 | <programlisting> | 203 | <programlisting> |
| @@ -229,7 +229,7 @@ meta-bsp/packages/linux/linux-bsp-2.6.50/defconfig-bsp | |||
| 229 | <para> | 229 | <para> |
| 230 | This area includes other pieces of software which the hardware may need for best | 230 | This area includes other pieces of software which the hardware may need for best |
| 231 | operation. These are just examples of the kind of things that may be | 231 | operation. These are just examples of the kind of things that may be |
| 232 | encountered. The are standard .bb file recipes in the usual Poky format | 232 | encountered. The are standard .bb file recipes in the usual Poky format, |
| 233 | so for examples, see standard Poky recipes. The source can be included directly, | 233 | so for examples, see standard Poky recipes. The source can be included directly, |
| 234 | referred to in source control systems or release tarballs of external software projects. | 234 | referred to in source control systems or release tarballs of external software projects. |
| 235 | </para> | 235 | </para> |
| @@ -269,6 +269,36 @@ meta-bsp/packages/image-creator/image-creator-native_0.1.bb | |||
| 269 | </para> | 269 | </para> |
| 270 | </section> | 270 | </section> |
| 271 | 271 | ||
| 272 | <section id='bs-filelayout-bbappend'> | ||
| 273 | <title>Append BSP specific information to existing recipes</title> | ||
| 274 | |||
| 275 | <para> | ||
| 276 | Say you have a recipe like pointercal which has machine specific information in it, | ||
| 277 | and then you have your new bsp code in a layer. Before .bbappend extension is | ||
| 278 | introduced, you have to copy the whole pointercal recipe and files into your layer, | ||
| 279 | and then add the single file for your machine which is ugly. | ||
| 280 | |||
| 281 | .bbappend makes above work much easier, to allow bsp specific information merged | ||
| 282 | with original recipe easily. When bitbake finds any X.bbappend files, they will be | ||
| 283 | included after bitbake loads X.bb but before finalise and any anonymous methods run. | ||
| 284 | This allows bsp layer to poke around and do whatever it might want to customise | ||
| 285 | the original recipe. | ||
| 286 | |||
| 287 | .bbappend is expected to include below two lines in the head (which may be changed | ||
| 288 | in the future): | ||
| 289 | </para> | ||
| 290 | |||
| 291 | <programlisting> | ||
| 292 | THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" | ||
| 293 | FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:" | ||
| 294 | </programlisting> | ||
| 295 | |||
| 296 | <para> | ||
| 297 | Then bsp could add machine specific config files in layer directory, which will be | ||
| 298 | added by bitbake. You could look at meta-emenlow/packages/formfactor as example | ||
| 299 | </para> | ||
| 300 | </section> | ||
| 301 | |||
| 272 | <section id='bsp-filelayout-prebuilds'> | 302 | <section id='bsp-filelayout-prebuilds'> |
| 273 | <title>Prebuild Data (meta-bsp/prebuilds/*)</title> | 303 | <title>Prebuild Data (meta-bsp/prebuilds/*)</title> |
| 274 | 304 | ||
diff --git a/handbook/ref-bitbake.xml b/handbook/ref-bitbake.xml index ddf3c760f2..eaf9467950 100644 --- a/handbook/ref-bitbake.xml +++ b/handbook/ref-bitbake.xml | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | <title>Reference: Bitbake</title> | 6 | <title>Reference: Bitbake</title> |
| 7 | 7 | ||
| 8 | <para> | 8 | <para> |
| 9 | Bitbake a program written in Python which interprets the metadata | 9 | Bitbake is a program written in Python that interprets the metadata |
| 10 | that makes up Poky. At some point, people wonder what actually happens | 10 | that makes up Poky. At some point, people wonder what actually happens |
| 11 | when you type <command>bitbake poky-image-sato</command>. This section | 11 | when you type <command>bitbake poky-image-sato</command>. This section |
| 12 | aims to give an overview of what happens behind the scenes from a | 12 | aims to give an overview of what happens behind the scenes from a |
| @@ -16,7 +16,7 @@ | |||
| 16 | <para> | 16 | <para> |
| 17 | It is worth noting that bitbake aims to be a generic "task" executor | 17 | It is worth noting that bitbake aims to be a generic "task" executor |
| 18 | capable of handling complex dependency relationships. As such it has no | 18 | capable of handling complex dependency relationships. As such it has no |
| 19 | real knowledge of what the tasks its executing actually do. It just | 19 | real knowledge of what the tasks it is executing actually do. It just |
| 20 | considers a list of tasks with dependencies and handles metadata | 20 | considers a list of tasks with dependencies and handles metadata |
| 21 | consisting of variables in a certain format which get passed to the | 21 | consisting of variables in a certain format which get passed to the |
| 22 | tasks. | 22 | tasks. |
| @@ -26,7 +26,7 @@ | |||
| 26 | <title>Parsing</title> | 26 | <title>Parsing</title> |
| 27 | 27 | ||
| 28 | <para> | 28 | <para> |
| 29 | The first thing BitBake does is work out its configuration by | 29 | The first thing BitBake does is that work out its configuration by |
| 30 | looking for a file called <filename>bitbake.conf</filename>. | 30 | looking for a file called <filename>bitbake.conf</filename>. |
| 31 | Bitbake searches through the <varname>BBPATH</varname> environment | 31 | Bitbake searches through the <varname>BBPATH</varname> environment |
| 32 | variable looking for a <filename class="directory">conf/</filename> | 32 | variable looking for a <filename class="directory">conf/</filename> |
| @@ -117,7 +117,7 @@ | |||
| 117 | specified on the commandline) and looks for providers of that target. | 117 | specified on the commandline) and looks for providers of that target. |
| 118 | Once a provider is selected, BitBake resolves all the dependencies for | 118 | Once a provider is selected, BitBake resolves all the dependencies for |
| 119 | the target. In the case of "poky-image-sato", it would lead to | 119 | the target. In the case of "poky-image-sato", it would lead to |
| 120 | <filename>task-oh.bb</filename> and <filename>task-base.bb</filename> | 120 | <filename>task-base.bb</filename> |
| 121 | which in turn would lead to packages like <application>Contacts</application>, | 121 | which in turn would lead to packages like <application>Contacts</application>, |
| 122 | <application>Dates</application>, <application>BusyBox</application> | 122 | <application>Dates</application>, <application>BusyBox</application> |
| 123 | and these in turn depend on glibc and the toolchain. | 123 | and these in turn depend on glibc and the toolchain. |
| @@ -154,7 +154,8 @@ | |||
| 154 | "1" makes it likely the package will be used. | 154 | "1" makes it likely the package will be used. |
| 155 | <glossterm><link | 155 | <glossterm><link |
| 156 | linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></glossterm> overrides | 156 | linkend='var-PREFERRED_VERSION'>PREFERRED_VERSION</link></glossterm> overrides |
| 157 | any default preference. <glossterm><link | 157 | any <glossterm><link |
| 158 | linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE</link></glossterm>. <glossterm><link | ||
| 158 | linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE</link></glossterm> | 159 | linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE</link></glossterm> |
| 159 | is often used to mark more | 160 | is often used to mark more |
| 160 | experimental new versions of packages until they've undergone sufficient | 161 | experimental new versions of packages until they've undergone sufficient |
| @@ -176,7 +177,7 @@ | |||
| 176 | multi-core systems, BitBake considers each task as an independent | 177 | multi-core systems, BitBake considers each task as an independent |
| 177 | entity with a set of dependencies. There are many variables that | 178 | entity with a set of dependencies. There are many variables that |
| 178 | are used to signify these dependencies and more information can be found | 179 | are used to signify these dependencies and more information can be found |
| 179 | found about these in the <ulink url='http://bitbake.berlios.de/manual/'> | 180 | about these in the <ulink url='http://bitbake.berlios.de/manual/'> |
| 180 | BitBake manual</ulink>. At a basic level it is sufficient to know | 181 | BitBake manual</ulink>. At a basic level it is sufficient to know |
| 181 | that BitBake uses the <glossterm><link | 182 | that BitBake uses the <glossterm><link |
| 182 | linkend='var-DEPENDS'>DEPENDS</link></glossterm> and | 183 | linkend='var-DEPENDS'>DEPENDS</link></glossterm> and |
| @@ -196,7 +197,7 @@ | |||
| 196 | order. The build now starts with BitBake forking off threads up to | 197 | order. The build now starts with BitBake forking off threads up to |
| 197 | the limit set in the <glossterm><link | 198 | the limit set in the <glossterm><link |
| 198 | linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link></glossterm> variable | 199 | linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link></glossterm> variable |
| 199 | as long there are tasks ready to run, i.e. tasks with all their | 200 | as long as there are tasks ready to run, i.e. tasks with all their |
| 200 | dependencies met. | 201 | dependencies met. |
| 201 | </para> | 202 | </para> |
| 202 | 203 | ||
| @@ -271,9 +272,9 @@ Options: | |||
| 271 | target that failed, and those that depend on it, | 272 | target that failed, and those that depend on it, |
| 272 | cannot be remade, the other dependencies of these | 273 | cannot be remade, the other dependencies of these |
| 273 | targets can be processed all the same. | 274 | targets can be processed all the same. |
| 275 | -a, --tryaltconfigs continue with builds by trying to use alternative | ||
| 276 | providers where possible. | ||
| 274 | -f, --force force run of specified cmd, regardless of stamp status | 277 | -f, --force force run of specified cmd, regardless of stamp status |
| 275 | -i, --interactive drop into the interactive mode also called the BitBake | ||
| 276 | shell. | ||
| 277 | -c CMD, --cmd=CMD Specify task to execute. Note that this only executes | 278 | -c CMD, --cmd=CMD Specify task to execute. Note that this only executes |
| 278 | the specified task for the providee and the packages | 279 | the specified task for the providee and the packages |
| 279 | it depends on, i.e. 'compile' does not implicitly call | 280 | it depends on, i.e. 'compile' does not implicitly call |
| @@ -286,6 +287,9 @@ Options: | |||
| 286 | -D, --debug Increase the debug level. You can specify this more | 287 | -D, --debug Increase the debug level. You can specify this more |
| 287 | than once. | 288 | than once. |
| 288 | -n, --dry-run don't execute, just go through the motions | 289 | -n, --dry-run don't execute, just go through the motions |
| 290 | -S, --dump-signatures | ||
| 291 | don't execute, just dump out the signature | ||
| 292 | construction information | ||
| 289 | -p, --parse-only quit after parsing the BB files (developers only) | 293 | -p, --parse-only quit after parsing the BB files (developers only) |
| 290 | -d, --disable-psyco disable using the psyco just-in-time compiler (not | 294 | -d, --disable-psyco disable using the psyco just-in-time compiler (not |
| 291 | recommended) | 295 | recommended) |
| @@ -294,13 +298,16 @@ Options: | |||
| 294 | what used to be bbread) | 298 | what used to be bbread) |
| 295 | -g, --graphviz emit the dependency trees of the specified packages in | 299 | -g, --graphviz emit the dependency trees of the specified packages in |
| 296 | the dot syntax | 300 | the dot syntax |
| 297 | -I IGNORED_DOT_DEPS, --ignore-deps=IGNORED_DOT_DEPS | 301 | -I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED |
| 298 | Stop processing at the given list of dependencies when | 302 | Assume these dependencies don't exist and are already |
| 299 | generating dependency graphs. This can help to make | 303 | provided (equivalent to ASSUME_PROVIDED). Useful to |
| 300 | the graph more appealing | 304 | make dependency graphs more appealing |
| 301 | -l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS | 305 | -l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS |
| 302 | Show debug logging for the specified logging domains | 306 | Show debug logging for the specified logging domains |
| 303 | -P, --profile profile the command and print a report</screen> | 307 | -P, --profile profile the command and print a report |
| 308 | -u UI, --ui=UI userinterface to use | ||
| 309 | --revisions-changed Set the exit code depending on whether upstream | ||
| 310 | floating revisions have changed or not</screen> | ||
| 304 | 311 | ||
| 305 | </section> | 312 | </section> |
| 306 | 313 | ||
