diff options
Diffstat (limited to 'documentation/dev-manual/dev-manual-model.xml')
-rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 0055bccfed..b1b5efa82c 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
@@ -41,153 +41,6 @@ | |||
41 | </itemizedlist> | 41 | </itemizedlist> |
42 | </para> | 42 | </para> |
43 | 43 | ||
44 | <section id='system-development-model'> | ||
45 | <title>System Development Workflow</title> | ||
46 | |||
47 | <para> | ||
48 | System development involves modification or creation of an image that you want to run on | ||
49 | a specific hardware target. | ||
50 | Usually, when you want to create an image that runs on embedded hardware, the image does | ||
51 | not require the same number of features that a full-fledged Linux distribution provides. | ||
52 | Thus, you can create a much smaller image that is designed to use only the | ||
53 | features for your particular hardware. | ||
54 | </para> | ||
55 | |||
56 | <para> | ||
57 | To help you understand how system development works in the Yocto Project, this section | ||
58 | covers two types of image development: BSP creation and kernel modification or | ||
59 | configuration. | ||
60 | </para> | ||
61 | |||
62 | <section id='modifying-the-kernel'> | ||
63 | <title><anchor id='kernel-spot' />Modifying the Kernel</title> | ||
64 | |||
65 | <para> | ||
66 | Kernel modification involves changing the Yocto Project kernel, which could involve changing | ||
67 | configuration options as well as adding new kernel recipes. | ||
68 | Configuration changes can be added in the form of configuration fragments, while recipe | ||
69 | modification comes through the kernel's <filename>recipes-kernel</filename> area | ||
70 | in a kernel layer you create. | ||
71 | </para> | ||
72 | |||
73 | <para> | ||
74 | The remainder of this section presents a high-level overview of the Yocto Project | ||
75 | kernel architecture and the steps to modify the kernel. | ||
76 | You can reference the | ||
77 | "<link linkend='patching-the-kernel'>Patching the Kernel</link>" section | ||
78 | for an example that changes the source code of the kernel. | ||
79 | For information on how to configure the kernel, see the | ||
80 | "<link linkend='configuring-the-kernel'>Configuring the Kernel</link>" section. | ||
81 | For more information on the kernel and on modifying the kernel, see the | ||
82 | <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>. | ||
83 | </para> | ||
84 | |||
85 | <section id='kernel-modification-workflow'> | ||
86 | <title>Kernel Modification Workflow</title> | ||
87 | |||
88 | <para> | ||
89 | This illustration and the following list summarizes the kernel modification general workflow. | ||
90 | </para> | ||
91 | |||
92 | <para> | ||
93 | <imagedata fileref="figures/kernel-dev-flow.png" | ||
94 | width="6in" depth="5in" align="center" scalefit="1" /> | ||
95 | </para> | ||
96 | |||
97 | <para> | ||
98 | <orderedlist> | ||
99 | <listitem><para><emphasis>Set up your host development system to support | ||
100 | development using the Yocto Project</emphasis>: See | ||
101 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>" and | ||
102 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both | ||
103 | in the Yocto Project Quick Start for requirements.</para></listitem> | ||
104 | <listitem><para><emphasis>Establish a local copy of project files on your | ||
105 | system</emphasis>: Having the | ||
106 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
107 | on your system gives you access to the build process and tools | ||
108 | you need. | ||
109 | For information on how to get these files, see the | ||
110 | "<link linkend='cloning-the-poky-repository'>Cloning the <filename>poky</filename> Repository</link>" | ||
111 | section. | ||
112 | </para></listitem> | ||
113 | <listitem><para><emphasis>Establish the temporary kernel source files</emphasis>: | ||
114 | Temporary kernel source files are kept in the | ||
115 | <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink> | ||
116 | created by the | ||
117 | OpenEmbedded build system when you run BitBake. | ||
118 | If you have never built the kernel in which you are | ||
119 | interested, you need to run an initial build to | ||
120 | establish local kernel source files.</para> | ||
121 | <para>If you are building an image for the first time, you need to get the build | ||
122 | environment ready by sourcing an environment setup script | ||
123 | (i.e. <filename>oe-init-build-env</filename> or | ||
124 | <filename>oe-init-build-env-memres</filename>). | ||
125 | You also need to be sure two key configuration files | ||
126 | (<filename>local.conf</filename> and <filename>bblayers.conf</filename>) | ||
127 | are configured appropriately.</para> | ||
128 | <para>The entire process for building an image is overviewed in the | ||
129 | "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" | ||
130 | section of the Yocto Project Quick Start. | ||
131 | You might want to reference this information. | ||
132 | You can find more information on BitBake in the | ||
133 | <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>. | ||
134 | </para> | ||
135 | <para>The build process supports several types of images to satisfy different needs. | ||
136 | See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in | ||
137 | the Yocto Project Reference Manual for information on supported images. | ||
138 | </para></listitem> | ||
139 | <listitem><para><emphasis>Make changes to the kernel source code if | ||
140 | applicable</emphasis>: Modifying the kernel does not always mean directly | ||
141 | changing source files. | ||
142 | However, if you have to do this, you make the changes to the files in the | ||
143 | Build Directory.</para></listitem> | ||
144 | <listitem><para><emphasis>Make kernel configuration changes if applicable</emphasis>: | ||
145 | If your situation calls for changing the kernel's | ||
146 | configuration, you can use | ||
147 | <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'><filename>menuconfig</filename></ulink>, | ||
148 | which allows you to interactively develop and test the | ||
149 | configuration changes you are making to the kernel. | ||
150 | Saving changes you make with | ||
151 | <filename>menuconfig</filename> updates | ||
152 | the kernel's <filename>.config</filename> file. | ||
153 | <note><title>Warning</title> | ||
154 | Try to resist the temptation to directly edit an | ||
155 | existing <filename>.config</filename> file, which is | ||
156 | found in the Build Directory among the source code | ||
157 | used for the build (e.g. see the workflow illustration | ||
158 | in the | ||
159 | "<link linkend='kernel-modification-workflow'>Kernel Modification Workflow</link>" | ||
160 | section). | ||
161 | Doing so, can produce unexpected results when the | ||
162 | OpenEmbedded build system regenerates the configuration | ||
163 | file. | ||
164 | </note> | ||
165 | Once you are satisfied with the configuration | ||
166 | changes made using <filename>menuconfig</filename> | ||
167 | and you have saved them, you can directly compare the | ||
168 | resulting <filename>.config</filename> file against an | ||
169 | existing original and gather those changes into a | ||
170 | <link linkend='creating-config-fragments'>configuration fragment file</link> | ||
171 | to be referenced from within the kernel's | ||
172 | <filename>.bbappend</filename> file.</para> | ||
173 | |||
174 | <para>Additionally, if you are working in a BSP layer | ||
175 | and need to modify the BSP's kernel's configuration, | ||
176 | you can use the | ||
177 | <ulink url='&YOCTO_DOCS_BSP_URL;#managing-kernel-patches-and-config-items-with-yocto-kernel'><filename>yocto-kernel</filename></ulink> | ||
178 | script as well as <filename>menuconfig</filename>. | ||
179 | The <filename>yocto-kernel</filename> script lets | ||
180 | you interactively set up kernel configurations. | ||
181 | </para></listitem> | ||
182 | <listitem><para><emphasis>Rebuild the kernel image with your changes</emphasis>: | ||
183 | Rebuilding the kernel image applies your changes. | ||
184 | </para></listitem> | ||
185 | </orderedlist> | ||
186 | </para> | ||
187 | </section> | ||
188 | </section> | ||
189 | </section> | ||
190 | |||
191 | <section id="dev-modifying-source-code"> | 44 | <section id="dev-modifying-source-code"> |
192 | <title>Modifying Source Code</title> | 45 | <title>Modifying Source Code</title> |
193 | 46 | ||