diff options
-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 | ||