blob: 49148abeadbc6f6436f1a95fe3dcb34eb9f5aa43 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<chapter id='dev-manual-intro'>
6
7<title>The Yocto Project Development Manual</title>
8 <section id='dev-intro'>
9 <title>Introduction</title>
10
11 <para>
12 Welcome to the Yocto Project Development Manual!
13 This manual provides information on how to use the Yocto Project to
14 develop embedded Linux images and user-space applications that
15 run on targeted devices.
16 The manual provides an overview of image, kernel, and
17 user-space application development using the Yocto Project.
18 Because much of the information in this manual is general, it
19 contains many references to other sources where you can find more
20 detail.
21 For example, you can find detailed information on Git, repositories,
22 and open source in general in many places on the Internet.
23 Another example specific to the Yocto Project is how to quickly
24 set up your host development system and build an image, which you
25 find in the
26 <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
27 </para>
28
29 <para>
30 The Yocto Project Development Manual does, however, provide
31 guidance and examples on how to change the kernel source code,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050032 reconfigure the kernel, and develop an application using
33 <filename>devtool</filename>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050034 </para>
35
36 <note>
37 By default, using the Yocto Project creates a Poky distribution.
38 However, you can create your own distribution by providing key
39 <link linkend='metadata'>Metadata</link>.
40 A good example is Angstrom, which has had a distribution
41 based on the Yocto Project since its inception.
42 Other examples include commercial distributions like
43 <ulink url='https://www.yoctoproject.org/organization/wind-river-systems'>Wind River Linux</ulink>,
44 <ulink url='https://www.yoctoproject.org/organization/mentor-graphics'>Mentor Embedded Linux</ulink>,
45 <ulink url='https://www.yoctoproject.org/organization/enea-ab'>ENEA Linux</ulink>
46 and <ulink url='https://www.yoctoproject.org/ecosystem/member-organizations'>others</ulink>.
47 See the "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>"
48 section for more information.
49 </note>
50 </section>
51
52 <section id='what-this-manual-provides'>
53 <title>What This Manual Provides</title>
54
55 <para>
56 The following list describes what you can get from this manual:
57 <itemizedlist>
58 <listitem><para>Information that lets you get set
59 up to develop using the Yocto Project.</para></listitem>
60 <listitem><para>Information to help developers who are new to
61 the open source environment and to the distributed revision
62 control system Git, which the Yocto Project uses.
63 </para></listitem>
64 <listitem><para>An understanding of common end-to-end
65 development models and tasks.</para></listitem>
66 <listitem><para>Information about common development tasks
67 generally used during image development for
68 embedded devices.
69 </para></listitem>
70 <listitem><para>Information on using the Yocto Project
71 integration of the QuickEMUlator (QEMU), which lets you
72 simulate running on hardware an image you have built using
73 the OpenEmbedded build system.
74 </para></listitem>
75 <listitem><para>Many references to other sources of related
76 information.</para></listitem>
77 </itemizedlist>
78 </para>
79 </section>
80
81 <section id='what-this-manual-does-not-provide'>
82 <title>What this Manual Does Not Provide</title>
83
84 <para>
85 This manual will not give you the following:
86 <itemizedlist>
87 <listitem><para><emphasis>Step-by-step instructions when those instructions exist in other Yocto
88 Project documentation:</emphasis>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050089 For example, the
90 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>
91 manual contains detailed instructions on how to install an
92 SDK, which is used to develop applications for target
93 hardware.
94 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050095 <listitem><para><emphasis>Reference material:</emphasis>
96 This type of material resides in an appropriate reference manual.
97 For example, system variables are documented in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050098 <ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>.
99 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500100 <listitem><para><emphasis>Detailed public information that is not specific to the Yocto Project:</emphasis>
101 For example, exhaustive information on how to use Git is covered better through the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500102 Internet than in this manual.
103 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500104 </itemizedlist>
105 </para>
106 </section>
107
108 <section id='other-information'>
109 <title>Other Information</title>
110
111 <para>
112 Because this manual presents overview information for many different
113 topics, supplemental information is recommended for full
114 comprehension.
115 The following list presents other sources of information you might find helpful:
116 <itemizedlist>
117 <listitem><para><emphasis><ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>:
118 </emphasis> The home page for the Yocto Project provides lots of information on the project
119 as well as links to software and documentation.
120 </para></listitem>
121 <listitem><para><emphasis>
122 <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>:</emphasis>
123 This short document lets you get started
124 with the Yocto Project and quickly begin building an image.
125 </para></listitem>
126 <listitem><para><emphasis>
127 <ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>:</emphasis>
128 This manual is a reference
129 guide to the OpenEmbedded build system, which is based on BitBake.
130 The build system is sometimes referred to as "Poky".
131 </para></listitem>
132 <listitem><para><emphasis>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500133 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>:</emphasis>
134 This guide provides information that lets you get going
135 with the standard or extensible SDK.
136 An SDK, with its cross-development toolchains, allows you
137 to develop projects inside or outside of the Yocto Project
138 environment.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500139 </para></listitem>
140 <listitem><para><emphasis>
141 <ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>:</emphasis>
142 This guide defines the structure for BSP components.
143 Having a commonly understood structure encourages standardization.
144 </para></listitem>
145 <listitem><para><emphasis>
146 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>:</emphasis>
147 This manual describes how to work with Linux Yocto kernels as well as provides a bit
148 of conceptual information on the construction of the Yocto Linux kernel tree.
149 </para></listitem>
150 <listitem><para><emphasis>
151 <ulink url='&YOCTO_DOCS_PROF_URL;'>Yocto Project Profiling and Tracing Manual</ulink>:</emphasis>
152 This manual presents a set of common and generally useful tracing and
153 profiling schemes along with their applications (as appropriate) to each tool.
154 </para></listitem>
155 <listitem><para><emphasis>
156 <ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>:</emphasis>
157 This manual introduces and describes how to set up and use
158 Toaster, which is a web interface to the Yocto Project's
159 <link linkend='build-system-term'>OpenEmbedded Build System</link>.
160 </para></listitem>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500161<!--
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500162 <listitem><para><emphasis>
163 <ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'>
164 Eclipse IDE Yocto Plug-in</ulink>:</emphasis>
165 A step-by-step instructional video that
166 demonstrates how an application developer uses Yocto Plug-in features within
167 the Eclipse IDE.
168 </para></listitem>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500169-->
170 <listitem><para><emphasis>
171 <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-appendix-latest-yp-eclipse-plug-in'>Eclipse IDE Yocto Plug-in</ulink>:</emphasis>
172 Instructions that demonstrate how an application developer
173 uses the Eclipse Yocto Project Plug-in feature within
174 the Eclipse IDE.
175 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500176 <listitem><para><emphasis>
177 <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>FAQ</ulink>:</emphasis>
178 A list of commonly asked questions and their answers.
179 </para></listitem>
180 <listitem><para><emphasis>
181 <ulink url='&YOCTO_RELEASE_NOTES;'>Release Notes</ulink>:</emphasis>
182 Features, updates and known issues for the current
183 release of the Yocto Project.
184 </para></listitem>
185 <listitem><para><emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500186 <ulink url='&YOCTO_HOME_URL;/tools-resources/projects/toaster'>Toaster</ulink>:</emphasis>
187 An Application Programming Interface (API) and web-based
188 interface to the OpenEmbedded build system, which uses
189 BitBake, that reports build information.
190 </para></listitem>
191 <listitem><para><emphasis>
192 <ulink url='&YOCTO_HOME_URL;/tools-resources/projects/build-appliance'>Build Appliance</ulink>:</emphasis>
193 A virtual machine that
194 enables you to build and boot a custom embedded Linux image
195 with the Yocto Project using a non-Linux development system.
196 </para></listitem>
197 <listitem><para><emphasis>
198 <ulink url='&YOCTO_BUGZILLA_URL;'>Bugzilla</ulink>:</emphasis>
199 The bug tracking application the Yocto Project uses.
200 If you find problems with the Yocto Project, you should report them using this
201 application.
202 </para></listitem>
203 <listitem><para><emphasis>Yocto Project Mailing Lists:</emphasis>
204 To subscribe to the Yocto Project mailing
205 lists, click on the following URLs and follow the instructions:
206 <itemizedlist>
207 <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'></ulink>
208 for a Yocto Project Discussions mailing list.
209 </para></listitem>
210 <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink>
211 for a Yocto Project Discussions mailing list about the
212 OpenEmbedded build system (Poky).
213 </para></listitem>
214 <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto-announce'></ulink>
215 for a mailing list to receive official Yocto Project announcements
216 as well as Yocto Project milestones.
217 </para></listitem>
218 <listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo'></ulink>
219 for a listing of all public mailing lists on
220 <filename>lists.yoctoproject.org</filename>.
221 </para></listitem>
222 </itemizedlist></para></listitem>
223 <listitem><para><emphasis>Internet Relay Chat (IRC):</emphasis>
224 Two IRC channels on freenode are available
225 for Yocto Project and Poky discussions: <filename>#yocto</filename> and
226 <filename>#poky</filename>, respectively.
227 </para></listitem>
228 <listitem><para><emphasis>
229 <ulink url='&OE_HOME_URL;'>OpenEmbedded</ulink>:</emphasis>
230 The build system used by the Yocto Project.
231 This project is the upstream, generic, embedded distribution
232 from which the Yocto Project derives its build system (Poky)
233 and to which it contributes.
234 </para></listitem>
235 <listitem><para><emphasis>
236 <ulink url='http://www.openembedded.org/wiki/BitBake'>BitBake</ulink>:</emphasis>
237 The tool used by the OpenEmbedded build system
238 to process project metadata.
239 </para></listitem>
240 <listitem><para><emphasis>
241 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual:</ulink></emphasis>
242 A comprehensive guide to the BitBake tool.
243 If you want information on BitBake, see this manual.
244 </para></listitem>
245 <listitem><para><emphasis>
246 <ulink url='http://wiki.qemu.org/Index.html'>Quick EMUlator (QEMU)</ulink>:</emphasis>
247 An open-source machine emulator and virtualizer.
248 </para></listitem>
249 </itemizedlist>
250 </para>
251 </section>
252</chapter>
253<!--
254vim: expandtab tw=80 ts=4
255-->