source: introduction/welcome/conventions.xml@ 8415d53

12.1 ken/TL2024 lazarus rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since 8415d53 was 8415d53, checked in by Pierre Labastie <pierre.labastie@…>, 4 months ago

Supplement kernel configuration case explanation

We had two "Optional parameter" cases in the explanations.
The second one is "as a module if enabled" in the example.
Add this to the explanation too.

  • Property mode set to 100644
File size: 11.2 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="conventions">
9 <?dbhtml filename="conventions.html"?>
10
11
12 <title>Conventions Used in this Book</title>
13
14 <sect2>
15 <title>Typographical Conventions</title>
16 <para>To make things easy to follow, a number of conventions are used
17 throughout the book. Here are some examples:</para>
18
19<screen><userinput>./configure --prefix=/usr</userinput></screen>
20
21 <blockquote>
22 <para>This form of text should be typed exactly as shown unless
23 otherwise noted in the surrounding text. It is also used to identify
24 references to specific commands.</para>
25 </blockquote>
26
27<screen><computeroutput>install-info: unknown option
28`--dir-file=/mnt/lfs/usr/info/dir'</computeroutput></screen>
29
30 <blockquote>
31 <para>This form of text (fixed width font) shows screen
32 output, probably the result of issuing a command. It is also used to
33 show filenames such as <filename>/boot/grub/grub.conf</filename></para>
34 </blockquote>
35
36 <para><emphasis>Emphasis</emphasis></para>
37
38 <blockquote>
39 <para>This form of text is used for several purposes,
40 but mainly to emphasize important points, or to give examples of
41 what to type.</para>
42 </blockquote>
43
44 <para><ulink url="https://www.&lfs-domainname;/"/></para>
45
46 <blockquote>
47 <para>This form of text is used for hypertext links external to
48 the book, such as HowTos, download locations, websites, etc.</para>
49 </blockquote>
50
51 <para><xref linkend="seamonkey"/></para>
52
53 <blockquote>
54 <para>This form of text is used for links internal to
55 the book, such as another section describing a different package.</para>
56 </blockquote>
57
58<screen><userinput>cat &gt; $LFS/etc/group &lt;&lt; "EOF"
59<literal>root:x:0:
60bin:x:1:
61......</literal>
62EOF</userinput></screen>
63
64 <blockquote>
65 <para>This style is mainly used when creating configuration
66 files. The first command (in bold) tells the system to create
67 the file <filename>$LFS/etc/group</filename> from whatever is typed on the
68 following lines, until the sequence EOF is encountered.
69 Therefore, this whole section is usually typed exactly as shown.
70 Remember, copy and paste is your friend!</para>
71 </blockquote>
72
73 <para><replaceable>&lt;REPLACED TEXT&gt;</replaceable></para>
74
75 <blockquote>
76 <para>This form of text is used to encapsulate text that should be
77 modified, and is not to be typed as shown, or copied and pasted.
78 The angle brackets are not part of the literal text; they are part of the
79 substitution.</para>
80 </blockquote>
81
82 <para><systemitem class='username'>root</systemitem></para>
83
84 <blockquote>
85 <para>This form of text is used to show a specific system user or group
86 reference in the instructions.</para>
87 </blockquote>
88
89 <para>&nbsp;</para> <!-- add extra white space to improve readability -->
90 </sect2>
91
92 <sect2>
93 <title>Conventions Used for Package Dependencies</title>
94
95 <para>When new packages are created, the software's authors depend on prior work. In
96 order to build a package in BLFS, these dependencies must be built before
97 the desired package can be compiled. For each package, prerequisites are listed
98 in one or more separate sections: Required, Recommended, and Optional.</para>
99
100 <bridgehead renderas="sect3">Required Dependencies</bridgehead>
101
102 <para>These dependencies are the bare minimum needed to
103 build the package. Packages in LFS, and the required
104 dependencies of these required packages, are omitted from this list.
105 Always remember to check for nested dependencies. If a dependency is
106 said to be <quote>runtime</quote>, then it is not needed for building
107 the package, but only to use it after installation.</para>
108
109 <bridgehead renderas="sect3">Recommended Dependencies</bridgehead>
110
111 <para>These are dependencies the BLFS editors have determined
112 are important to give the package reasonable capabilities. If a
113 recommended dependency is not said to be <quote>runtime</quote>, package
114 installation instructions assume it is installed. If it
115 is not installed, the instructions may require modification, to
116 accommodate the missing package. A recommended <quote>runtime</quote>
117 dependency does not need to be installed before building the package, but
118 must be built afterwards for running the package with reasonable
119 capabilities.</para>
120
121 <bridgehead renderas="sect3">Optional Dependencies</bridgehead>
122
123 <para>These are dependencies the package <emphasis>may</emphasis> use. Integration
124 of optional dependencies may be automatic by the package, or
125 additional steps not presented by BLFS may be necessary. Optional dependencies are
126 sometimes listed without explicit BLFS instructions. In this case you must
127 determine how to perform the installation yourself.</para>
128
129 <para>&nbsp;</para> <!-- add extra white space to improve readability -->
130 </sect2>
131
132 <sect2>
133 <title>Conventions Used for Kernel Configuration Options</title>
134
135 <para>Some packages require specific kernel configuration options.
136 The general layout for these looks like this:</para>
137
138 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
139 href="conventions-kernel.xml"/>
140
141 <para>[...] on the right gives the symbolic name of the option, so you
142 can easily check whether it is set in your <filename>.config</filename>
143 file. Note that the <filename>.config</filename> file contains a
144 <literal>CONFIG_</literal> prefix before all symbolic names. The
145 meaning of the various entries is:
146
147 <blockquote>
148 <informaltable frame='none'><tgroup cols="2">
149 <colspec align="left"/><colspec align="left"/><tbody>
150 <row>
151 <entry><emphasis role="bold">Master section</emphasis></entry>
152 <entry>top level menu item</entry>
153 </row>
154 <row>
155 <entry><emphasis role="bold">Subsection</emphasis></entry>
156 <entry>submenu item</entry>
157 </row>
158 <row>
159 <entry>
160 <emphasis role="bold">Required parameter</emphasis></entry>
161 <entry>
162 the option can either be built-in, or not selected: it must be
163 selected
164 </entry>
165 </row>
166 <row>
167 <entry>
168 <emphasis role="bold">Required parameter (not as
169 module)</emphasis>
170 </entry>
171 <entry>
172 the option can be built-in, a module, or not selected (tri-state):
173 it must be selected as built-in
174 </entry>
175 </row>
176 <row>
177 <entry>
178 <emphasis role="bold">Required parameter (could be
179 a module)</emphasis>
180 </entry>
181 <entry>
182 the option can be built-in, a module, or not selected:
183 it must be selected, either as built-in or as a module
184 </entry>
185 </row>
186 <row>
187 <entry>
188 <emphasis role="bold">Required parameter (as
189 a module)</emphasis>
190 </entry>
191 <entry>
192 the option can be built-in, a module, or not selected:
193 it must be selected as a module; selecting it as built-in
194 may cause unwanted effects
195 </entry>
196 </row>
197 <row>
198 <entry>
199 <emphasis role="bold">Optional parameter</emphasis>
200 </entry>
201 <entry>
202 the option can be built-in, a module, or not
203 selected: it may be selected as a module or built-in if you
204 need it for driving the hardware or optional kernel features
205 </entry>
206 </row>
207 <row>
208 <entry>
209 <emphasis role="bold">Optional parameter (as a module
210 if enabled)</emphasis>
211 </entry>
212 <entry>
213 the option can be built-in, a module, or not
214 selected: it may be selected as a module if you need it
215 for driving the hardware or optional kernel features, but
216 selecting it as built-in may cause unwanted effects
217 </entry>
218 </row>
219 <row>
220 <entry>
221 <emphasis role="bold">Incompatible parameter</emphasis>
222 </entry>
223 <entry>
224 the option can either be built-in or not selected: it must
225 <emphasis>not</emphasis> be selected
226 </entry>
227 </row>
228 <row>
229 <entry>
230 <emphasis role="bold">Incompatible parameter (even as module)</emphasis>
231 </entry>
232 <entry>
233 the option can be built-in, a module, or not selected:
234 it must <emphasis>not</emphasis> be selected
235 </entry>
236 </row>
237 </tbody></tgroup></informaltable>
238 </blockquote>
239 </para>
240
241 <para>Note that, depending on other selections, the angle brackets
242 (&lt;&gt;) in the configuration menu may appear as braces ({}) if the option cannot be unselected,
243 or even as dashes (-*- or -M-), when the choice is imposed.
244 The help text describing the option specifies the other selections on which this
245 option relies, and how those other selections are set.</para>
246
247 <para>
248 The letter in <emphasis role='blue'>blue</emphasis> is the hotkey
249 for this option. If you are running
250 <command>make menuconfig</command>, you can press a key to quickly
251 traverse all the options with this key as the hotkey on the screen.
252 </para>
253
254 <para>&nbsp;</para> <!-- add extra white space to improve readability -->
255 </sect2>
256
257 <sect2>
258 <title>SBU values in BLFS</title>
259
260 <para>As in LFS, each package in BLFS has a build time listed in Standard
261 Build Units (SBUs). These times are relative to the time it took to build
262 binutils in LFS, and are intended to provide some insight into how long it
263 will take to build a package. Most times listed are for a single processor
264 or core to build the package. In some cases, large, long running builds
265 tested on multi-core systems have SBU times listed with comments such
266 as '(parallelism=4)'. These values indicate testing was done using
267 multiple cores. Note that while this speeds up the build on systems with
268 the appropriate hardware, the speedup is not linear and to some extent
269 depends on the individual package and the specific hardware used. </para>
270
271 <para>For packages which use ninja (i.e., anything using meson) or rust, by
272 default all cores are used; similar comments will be seen on such packages
273 even when the build time is minimal.</para>
274
275 <para>Where even a parallel build takes more than 15 SBU, on certain
276 machines the time may be considerably greater even when the build does not
277 use swap. In particular, different micro-architectures will build some
278 files at different relative speeds, and this can introduce delays when
279 certain make targets wait for another file to be created. Where a large
280 build uses a lot of C++ files, processors with Simultaneous Multi Threading
281 will share the Floating Point Unit and can take 45% longer than when using
282 four 'prime' cores (measured on an intel i7 using taskset and keeping the
283 other cores idle).</para>
284
285 <para>Some packages do not support parallel builds; for these, the
286 make command must specify -j1. Packages that are known to impose such limits are
287 so marked in the text.</para>
288
289 </sect2>
290
291</sect1>
Note: See TracBrowser for help on using the repository browser.