diff options
Diffstat (limited to 'documentation')
| -rw-r--r-- | documentation/getting-started/getting-started-development-environment.xml | 120 | ||||
| -rw-r--r-- | documentation/getting-started/getting-started-yp-intro.xml | 75 |
2 files changed, 72 insertions, 123 deletions
diff --git a/documentation/getting-started/getting-started-development-environment.xml b/documentation/getting-started/getting-started-development-environment.xml index 5d6491c51b..54a607f6ab 100644 --- a/documentation/getting-started/getting-started-development-environment.xml +++ b/documentation/getting-started/getting-started-development-environment.xml | |||
| @@ -7,8 +7,7 @@ | |||
| 7 | 7 | ||
| 8 | <para> | 8 | <para> |
| 9 | This chapter takes a look at the Yocto Project development | 9 | This chapter takes a look at the Yocto Project development |
| 10 | environment and also provides a detailed look at what goes on during | 10 | environment. |
| 11 | development in that environment. | ||
| 12 | The chapter provides Yocto Project Development environment concepts that | 11 | The chapter provides Yocto Project Development environment concepts that |
| 13 | help you understand how work is accomplished in an open source environment, | 12 | help you understand how work is accomplished in an open source environment, |
| 14 | which is very different as compared to work accomplished in a closed, | 13 | which is very different as compared to work accomplished in a closed, |
| @@ -21,123 +20,6 @@ | |||
| 21 | syntax. | 20 | syntax. |
| 22 | </para> | 21 | </para> |
| 23 | 22 | ||
| 24 | <section id='yp-intro'> | ||
| 25 | <title>Introduction</title> | ||
| 26 | |||
| 27 | <para> | ||
| 28 | The Yocto Project is an open-source collaboration project whose | ||
| 29 | focus is for developers of embedded Linux systems. | ||
| 30 | Among other things, the Yocto Project uses an | ||
| 31 | <ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded build system</ulink>. | ||
| 32 | The build system, which is based on the OpenEmbedded (OE) project and | ||
| 33 | uses the | ||
| 34 | <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink> tool, | ||
| 35 | constructs complete Linux images for architectures based on ARM, MIPS, | ||
| 36 | PowerPC, x86 and x86-64. | ||
| 37 | <note> | ||
| 38 | Historically, the OpenEmbedded build system, which is the | ||
| 39 | combination of BitBake and OE components, formed a reference | ||
| 40 | build host that was known as | ||
| 41 | "<ulink url='&YOCTO_DOCS_REF_URL;#poky'>Poky</ulink>" | ||
| 42 | (<emphasis>Pah</emphasis>-kee). | ||
| 43 | The term "Poky", as used throughout the Yocto Project Documentation | ||
| 44 | set, can have different meanings. | ||
| 45 | </note> | ||
| 46 | The Yocto Project provides various ancillary tools for the embedded | ||
| 47 | developer and also features the Sato reference User Interface, which | ||
| 48 | is optimized for stylus-driven, low-resolution screens. | ||
| 49 | </para> | ||
| 50 | |||
| 51 | <mediaobject> | ||
| 52 | <imageobject> | ||
| 53 | <imagedata fileref="figures/YP-flow-diagram.png" | ||
| 54 | format="PNG" align='center' width="8in"/> | ||
| 55 | </imageobject> | ||
| 56 | </mediaobject> | ||
| 57 | |||
| 58 | <para> | ||
| 59 | Here are some highlights for the Yocto Project: | ||
| 60 | </para> | ||
| 61 | |||
| 62 | <itemizedlist> | ||
| 63 | <listitem><para> | ||
| 64 | Provides a recent Linux kernel along with a set of system | ||
| 65 | commands and libraries suitable for the embedded | ||
| 66 | environment. | ||
| 67 | </para></listitem> | ||
| 68 | <listitem><para> | ||
| 69 | Makes available system components such as X11, GTK+, Qt, | ||
| 70 | Clutter, and SDL (among others) so you can create a rich user | ||
| 71 | experience on devices that have display hardware. | ||
| 72 | For devices that do not have a display or where you wish to | ||
| 73 | use alternative UI frameworks, these components need not be | ||
| 74 | installed. | ||
| 75 | </para></listitem> | ||
| 76 | <listitem><para> | ||
| 77 | Creates a focused and stable core compatible with the | ||
| 78 | OpenEmbedded project with which you can easily and reliably | ||
| 79 | build and develop. | ||
| 80 | </para></listitem> | ||
| 81 | <listitem><para> | ||
| 82 | Fully supports a wide range of hardware and device emulation | ||
| 83 | through the Quick EMUlator (QEMU). | ||
| 84 | </para></listitem> | ||
| 85 | <listitem><para> | ||
| 86 | Provides a layer mechanism that allows you to easily extend | ||
| 87 | the system, make customizations, and keep them organized. | ||
| 88 | </para></listitem> | ||
| 89 | </itemizedlist> | ||
| 90 | |||
| 91 | <para> | ||
| 92 | You can use the Yocto Project to generate images for many kinds | ||
| 93 | of devices. | ||
| 94 | As mentioned earlier, the Yocto Project supports creation of | ||
| 95 | reference images that you can boot within and emulate using QEMU. | ||
| 96 | The standard example machines target QEMU full-system | ||
| 97 | emulation for 32-bit and 64-bit variants of x86, ARM, MIPS, and | ||
| 98 | PowerPC architectures. | ||
| 99 | Beyond emulation, you can use the layer mechanism to extend | ||
| 100 | support to just about any platform that Linux can run on and that | ||
| 101 | a toolchain can target. | ||
| 102 | </para> | ||
| 103 | |||
| 104 | <para> | ||
| 105 | Another Yocto Project feature is the Sato reference User | ||
| 106 | Interface. | ||
| 107 | This optional UI that is based on GTK+ is intended for devices with | ||
| 108 | restricted screen sizes and is included as part of the | ||
| 109 | OpenEmbedded Core layer so that developers can test parts of the | ||
| 110 | software stack. | ||
| 111 | </para> | ||
| 112 | |||
| 113 | <para> | ||
| 114 | While the Yocto Project does not provide a strict testing framework, | ||
| 115 | it does provide or generate for you artifacts that let you perform | ||
| 116 | target-level and emulated testing and debugging. | ||
| 117 | Additionally, if you are an | ||
| 118 | <trademark class='trade'>Eclipse</trademark> IDE user, you can | ||
| 119 | install an Eclipse Yocto Plug-in to allow you to develop within that | ||
| 120 | familiar environment. | ||
| 121 | </para> | ||
| 122 | |||
| 123 | <para> | ||
| 124 | By default, using the Yocto Project to build an image creates a Poky | ||
| 125 | distribution. | ||
| 126 | However, you can create your own distribution by providing key | ||
| 127 | <ulink url='&YOCTO_DOCS_REF_URL;#metadata'>Metadata</ulink>. | ||
| 128 | A good example is Angstrom, which has had a distribution | ||
| 129 | based on the Yocto Project since its inception. | ||
| 130 | Other examples include commercial distributions like | ||
| 131 | <ulink url='https://www.yoctoproject.org/organization/wind-river-systems'>Wind River Linux</ulink>, | ||
| 132 | <ulink url='https://www.yoctoproject.org/organization/mentor-graphics'>Mentor Embedded Linux</ulink>, | ||
| 133 | <ulink url='https://www.yoctoproject.org/organization/enea-ab'>ENEA Linux</ulink> | ||
| 134 | and <ulink url='https://www.yoctoproject.org/ecosystem/member-organizations'>others</ulink>. | ||
| 135 | See the "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-distribution'>Creating Your Own Distribution</ulink>" | ||
| 136 | section in the Yocto Project Development Tasks Manual for more | ||
| 137 | information. | ||
| 138 | </para> | ||
| 139 | </section> | ||
| 140 | |||
| 141 | <section id='open-source-philosophy'> | 23 | <section id='open-source-philosophy'> |
| 142 | <title>Open Source Philosophy</title> | 24 | <title>Open Source Philosophy</title> |
| 143 | 25 | ||
diff --git a/documentation/getting-started/getting-started-yp-intro.xml b/documentation/getting-started/getting-started-yp-intro.xml index 964a500ad4..caabb13c10 100644 --- a/documentation/getting-started/getting-started-yp-intro.xml +++ b/documentation/getting-started/getting-started-yp-intro.xml | |||
| @@ -72,7 +72,11 @@ | |||
| 72 | Most ODMs, OSVs, and chip vendors create and supply | 72 | Most ODMs, OSVs, and chip vendors create and supply |
| 73 | BSPs that support their hardware. | 73 | BSPs that support their hardware. |
| 74 | If you have custom silicon, you can create a BSP | 74 | If you have custom silicon, you can create a BSP |
| 75 | that supports that architecture. | 75 | that supports that architecture.</para> |
| 76 | |||
| 77 | <para>Aside from lots of architecture support, the | ||
| 78 | Yocto Project fully supports a wide range of device | ||
| 79 | emulation through the Quick EMUlator (QEMU). | ||
| 76 | </para></listitem> | 80 | </para></listitem> |
| 77 | <listitem><para> | 81 | <listitem><para> |
| 78 | <emphasis>Images and Code Transfer Easily:</emphasis> | 82 | <emphasis>Images and Code Transfer Easily:</emphasis> |
| @@ -104,6 +108,13 @@ | |||
| 104 | embedded devices. | 108 | embedded devices. |
| 105 | You only add the feature support or packages that you | 109 | You only add the feature support or packages that you |
| 106 | absolutely need for the device. | 110 | absolutely need for the device. |
| 111 | For devices that have display hardware, you can use | ||
| 112 | available system components such as X11, GTK+, Qt, | ||
| 113 | Clutter, and SDL (among others) to create a rich user | ||
| 114 | experience. | ||
| 115 | For devices that do not have a display or where you | ||
| 116 | want to use alternative UI frameworks, you can choose | ||
| 117 | to not install these components. | ||
| 107 | </para></listitem> | 118 | </para></listitem> |
| 108 | <listitem><para> | 119 | <listitem><para> |
| 109 | <emphasis>Comprehensive Toolchain Capabilities:</emphasis> | 120 | <emphasis>Comprehensive Toolchain Capabilities:</emphasis> |
| @@ -130,7 +141,9 @@ | |||
| 130 | You can incrementally add these grouped functionalities | 141 | You can incrementally add these grouped functionalities |
| 131 | to your project as needed. | 142 | to your project as needed. |
| 132 | Using layers to isolate and group functionality | 143 | Using layers to isolate and group functionality |
| 133 | reduces project complexity and redundancy. | 144 | reduces project complexity and redundancy, allows you |
| 145 | to easily extend the system, make customizations, | ||
| 146 | and keep functionality organized. | ||
| 134 | </para></listitem> | 147 | </para></listitem> |
| 135 | <listitem><para> | 148 | <listitem><para> |
| 136 | <emphasis>Supports Partial Builds:</emphasis> | 149 | <emphasis>Supports Partial Builds:</emphasis> |
| @@ -736,6 +749,9 @@ | |||
| 736 | It is a working example of how to build your own custom | 749 | It is a working example of how to build your own custom |
| 737 | Linux distribution from source. | 750 | Linux distribution from source. |
| 738 | </note> | 751 | </note> |
| 752 | You can read more about Poky in the | ||
| 753 | "<link linkend='reference-embedded-distribution'>Reference Embedded Distribution (Poky)</link>" | ||
| 754 | section. | ||
| 739 | </para> | 755 | </para> |
| 740 | </section> | 756 | </section> |
| 741 | 757 | ||
| @@ -1071,9 +1087,60 @@ | |||
| 1071 | </para> | 1087 | </para> |
| 1072 | </section> | 1088 | </section> |
| 1073 | 1089 | ||
| 1074 | <section id='the-yocto-project-workflow'> | 1090 | <section id='openembedded-build-system-workflow'> |
| 1075 | <title>The Yocto Project Workflow</title> | 1091 | <title>The OpenEmbedded Build System Workflow</title> |
| 1092 | |||
| 1093 | <para> | ||
| 1094 | The OpenEmbedded build system uses a "workflow" to accomplish | ||
| 1095 | image and SDK generation. | ||
| 1096 | The following figure overviews that workflow: | ||
| 1097 | <imagedata fileref="figures/YP-flow-diagram.png" | ||
| 1098 | format="PNG" align='center' width="8in"/> | ||
| 1099 | Following is a brief summary of the "workflow": | ||
| 1100 | <orderedlist> | ||
| 1101 | <listitem><para> | ||
| 1102 | Developers specify architecture, policies, patches and | ||
| 1103 | configuration details. | ||
| 1104 | </para></listitem> | ||
| 1105 | <listitem><para> | ||
| 1106 | The build system fetches and downloads the source code | ||
| 1107 | from the specified location. | ||
| 1108 | The build system supports standard methods such as tarballs | ||
| 1109 | or source code repositories systems such as Git. | ||
| 1110 | </para></listitem> | ||
| 1111 | <listitem><para> | ||
| 1112 | Once downloaded, the build system extracts the sources | ||
| 1113 | into a local work area where patches are applied and | ||
| 1114 | common steps for configuring and compiling the software | ||
| 1115 | are run. | ||
| 1116 | </para></listitem> | ||
| 1117 | <listitem><para> | ||
| 1118 | The build system then installs the software into a | ||
| 1119 | temporary staging area where the binary package format you | ||
| 1120 | select (DEB, RPM, or IPK) is used to roll up the software. | ||
| 1121 | </para></listitem> | ||
| 1122 | <listitem><para> | ||
| 1123 | Different QA and sanity checks run throughout entire | ||
| 1124 | build process. | ||
| 1125 | </para></listitem> | ||
| 1126 | <listitem><para> | ||
| 1127 | After the binaries are created, the build system | ||
| 1128 | generates a binary package feed that is used to create | ||
| 1129 | the final root file image. | ||
| 1130 | </para></listitem> | ||
| 1131 | <listitem><para> | ||
| 1132 | The build system generates the file system image and a | ||
| 1133 | customized Extensible SDK (eSDSK) for application | ||
| 1134 | development in parallel. | ||
| 1135 | </para></listitem> | ||
| 1136 | </orderedlist> | ||
| 1137 | </para> | ||
| 1076 | 1138 | ||
| 1139 | <para> | ||
| 1140 | For a very detailed look at this workflow, see the | ||
| 1141 | "<ulink url='&YOCTO_DOCS_CM_URL;#development-concepts'>Development Concepts</ulink>" | ||
| 1142 | section in the Yocto Project Concepts Manual. | ||
| 1143 | </para> | ||
| 1077 | </section> | 1144 | </section> |
| 1078 | 1145 | ||
| 1079 | 1146 | ||
