From 53d28637d082cfc2bcd1cef577a57765c332f917 Mon Sep 17 00:00:00 2001 From: "Theodore A. Roth" Date: Wed, 25 Feb 2009 15:15:52 +0000 Subject: getting_oe.xml: Update "Building Software" section. --- docs/usermanual/chapters/getting_oe.xml | 317 +++++++++++++++++++++++++++++++- 1 file changed, 310 insertions(+), 7 deletions(-) (limited to 'docs/usermanual/chapters') diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml index 3c685049a4..d71ea71e72 100644 --- a/docs/usermanual/chapters/getting_oe.xml +++ b/docs/usermanual/chapters/getting_oe.xml @@ -242,13 +242,316 @@ MACHINE = "om-gta01"
Building Software - Once BitBake and OpenEmbedded are set up and configured, one can build - software and images like this: - -bitbake <recipe_name> - - + The primary interface to the build system is + the bitbake command (see + the BitBake + users manual). BitBake will download and patch files from the + internet, so it helps if you are on a well connected machine. + + + Note that you should issue all BitBake commands from inside of the + build/ directory, or you should + override TMPDIR in + your $OEBASE/build/conf/local.conf to point + elsewhere (by default it goes to tmp/ relative to + the directory you run bitbake commands in). + + + + BitBake might complain that there is a problem with the setting in + /proc/sys/vm/mmap_min_addr, which needs to be set + to zero. You can set it by doing the following as root: + + # echo 0 > /proc/sys/vm/mmap_min_addr + + Note that you can not use a text editor to do this since files + in /proc are not real files. Also note that this + above change will be lost when you reboot your system. To have the + change made automatically when the system boots, some systems provide + a /etc/sysctl.conf file. Add the following line + to that file: + + vm.mmap_min_addr=0 + + If your system does not provide + the /etc/sysctl.conf mechanism, you can try adding + the above echo command line to + your /etc/rc.local. + + + + Once BitBake and OpenEmbedded are set up and configured, you can build + software and images like this: - This section is a stub, help us by expanding it + $ bitbake <recipe_name> + + A recipe name corresponds to a BitBake .bb file. A + BitBake file is a logical unit of tasks to be executed. Normally this is + a package to be built. Inter-recipe dependencies are obeyed. The recipes + are located by BitBake via the BBFILES variable (set + in your $OEBASE/build/conf/local/conf), which is a + space separated list of .bb files, and does handle + wildcards. + + + To build a single package, bypassing the long parse step (and + therefore its dependencies -- use with care): + + $ bitbake -b $OEBASE/openembedded/packages/blah/blah.bb + + + There are a few groups of special recipes located in subdirectories + of the $OEBASE/openembedded/packages/ + directory. These groups are: + + + + tasks/ + A collection of meta-packages that depend on real + packages to make managing package sets easier. + + + + meta/ + A collection of usefull meta tasks and recipes that + don't fit in a general category. + + + + images/ + A collection of image targets that depend on + packages that will be installed into an image which can be put + on the target system. + + + + +
Useful Target Recipes + Although BitBake can build individual packages, it is often more + useful to build a set of packages and combine them into an image. The + following recipe names are commonly used to that effect. + + +
Images + + + + helloworld-image + + Builds an image, that if used as a root filesystem, will + start a static executable that prints hello world then + loops infinitely. Can be used to test the Linux boot + procedure into user space (init). + + + + + + bootstrap-image + + Build image contains task-base packages. + + + + + + console-image + + Build an image without the X11, gtk+, or qt windowing + libraries. + + + + + + x11-image + + Builds an image with X11. + + + + + + beagleboard-demo-image + + Builds the Ångström distribution like Koen + proposed. + + + + + + opie-image + + Build image based on the + Open Palmtop + Integrated Environment (OPIE). OPIE is a completely + Open Source based graphical user environment and suite of + applications for small form-factor devices, such as PDAs, + running Linux. + + + + + + opie-kdepim-image + + Build image based on the OPIE and full featured + KDE-based PIM (pi-sync, ko/pi, ka/pi, etc). + + + + + + pivotboot-image + + Build image that is necessary to flash a Sharp SL C3000, + Zaurus. It pivots after booting from the NAND and finalizes + the install to the HD during the first boot. + + + + + + twin-image + + A image with task-base plus a couple of editors, nano and + vim (why two?), and a mail reader, mutt. + + + + + + uml-image + + A root image for user-mode-linux. Includes task-base, + and parts of opie. + + + + + + gpe-image + + Build a GPE + Palmtop Environment based kernel and rootfs. The GPE + provides a user interface environment for palmtop/handheld + computers running the GNU/Linux or any other UNIX-like + operating system. + + + + + +
+ +
Tasks + + + + task-base + + Build a kernel and core packages for a basic + installation. You won't be able to do much more than ssh to + the machine if this is all that is installed. + + + + + + task-dvb + + Meta-package for DVB application (DVB = Digital Video + Broadcasting). + + + + + + task-python-everything + + All of python. + + + + + + task-native-sdk + + Mata-package for native (on-device) SDK. + + + + + +
+ +
Meta + + + + meta-opie + + Build all OPIE related packages and some more for OPIE + based usage. + + + + + + meta-gpe + + Basic packages to go with gpe-image. + + + + + +
+ +
Other + + + + helloworld + + Builds a static executable that prints hello + world then loops infinitely. + + + + + + world + + Build everything. This takes a long time, a lot + of network bandwidth, and a lot of disc space. Can also + break your toolchain. + + + + + + package-index + + Target to update the "feed" files to reflect the current + set of .ipk's that exist in the deploy directory. Commonly + used after building some packages individually to update the + feed and allow them to be installed via a package manager or + the ipkg command line tools. + + + + + + virtual/kernel + + Builds the appropriate kernel for your device. + + + + +
+
-- cgit v1.2.3