source: chapter08/kernel.xml@ b06ca36

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since b06ca36 was b06ca36, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Updated book sources to use DocBook-XML DTD 4.5

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7970 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 8.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
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="ch-bootable-kernel" role="wrap">
9 <?dbhtml filename="kernel.html"?>
10
11 <title>Linux-&linux-version;</title>
12
13 <indexterm zone="ch-bootable-kernel">
14 <primary sortas="a-Linux">Linux</primary>
15 </indexterm>
16
17 <sect2 role="package">
18 <title/>
19
20 <para>The Linux package contains the Linux kernel.</para>
21
22 <segmentedlist>
23 <segtitle>&buildtime;</segtitle>
24 <segtitle>&diskspace;</segtitle>
25
26 <seglistitem>
27 <seg>&linux-ch8-sbu;</seg>
28 <seg>&linux-ch8-du;</seg>
29 </seglistitem>
30 </segmentedlist>
31
32 </sect2>
33
34 <sect2 role="installation">
35 <title>Installation of the kernel</title>
36
37 <para>Building the kernel involves a few steps&mdash;configuration,
38 compilation, and installation. Read the <filename>README</filename> file
39 in the kernel source tree for alternative methods to the way this book
40 configures the kernel.</para>
41
42 <para>Prepare for compilation by running the following command:</para>
43
44<screen><userinput>make mrproper</userinput></screen>
45
46 <para>This ensures that the kernel tree is absolutely clean. The
47 kernel team recommends that this command be issued prior to each
48 kernel compilation. Do not rely on the source tree being clean after
49 un-tarring.</para>
50
51 <!-- Support for compiling a keymap into the kernel is deliberately removed -->
52
53 <para>Configure the kernel via a menu-driven interface. BLFS has some
54 information regarding particular kernel configuration requirements of
55 packages outside of LFS at <ulink
56 url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para>
57
58<screen role="nodump"><userinput>make menuconfig</userinput></screen>
59
60 <para>Alternatively, <command>make oldconfig</command> may be more
61 appropriate in some situations. See the <filename>README</filename>
62 file for more information.</para>
63
64 <para>If desired, skip kernel configuration by copying the kernel
65 config file, <filename>.config</filename>, from the host system
66 (assuming it is available) to the unpacked <filename
67 class="directory">linux-&linux-version;</filename> directory. However,
68 we do not recommend this option. It is often better to explore all the
69 configuration menus and create the kernel configuration from
70 scratch.</para>
71
72 <para>Compile the kernel image and modules:</para>
73
74<screen><userinput>make</userinput></screen>
75
76 <para>If using kernel modules, an <filename>/etc/modprobe.conf</filename>
77 file may be needed. Information pertaining to modules and kernel
78 configuration is located in <xref linkend="ch-scripts-udev"/> and in the
79 kernel documentation in the <filename
80 class="directory">linux-&linux-version;/Documentation</filename> directory.
81 Also, <filename>modprobe.conf(5)</filename> may be of interest.</para>
82
83 <para>Install the modules, if the kernel configuration uses them:</para>
84
85<screen><userinput>make modules_install</userinput></screen>
86
87 <para>After kernel compilation is complete, additional steps are
88 required to complete the installation. Some files need to be copied to
89 the <filename class="directory">/boot</filename> directory.</para>
90
91 <para>The path to the kernel image may vary depending on the platform
92 being used. The following command assumes an x86 architecture:</para>
93
94<screen><userinput>cp -v arch/i386/boot/bzImage /boot/lfskernel-&linux-version;</userinput></screen>
95
96 <para><filename>System.map</filename> is a symbol file for the kernel.
97 It maps the function entry points of every function in the kernel API,
98 as well as the addresses of the kernel data structures for the running
99 kernel. Issue the following command to install the map file:</para>
100
101<screen><userinput>cp -v System.map /boot/System.map-&linux-version;</userinput></screen>
102
103 <para>The kernel configuration file <filename>.config</filename>
104 produced by the <command>make menuconfig</command> step
105 above contains all the configuration selections for the kernel
106 that was just compiled. It is a good idea to keep this file for future
107 reference:</para>
108
109<screen><userinput>cp -v .config /boot/config-&linux-version;</userinput></screen>
110
111 <para>Install the documentation for the Linux kernel:</para>
112
113<screen><userinput>install -d /usr/share/doc/linux-&linux-version; &amp;&amp;
114cp -r Documentation/* /usr/share/doc/linux-&linux-version;</userinput></screen>
115
116 <para>It is important to note that the files in the kernel source
117 directory are not owned by <emphasis>root</emphasis>. Whenever a
118 package is unpacked as user <emphasis>root</emphasis> (like we did
119 inside chroot), the files have the user and group IDs of whatever
120 they were on the packager's computer. This is usually not a problem
121 for any other package to be installed because the source tree is
122 removed after the installation. However, the Linux source tree is
123 often retained for a long time. Because of this, there is a chance
124 that whatever user ID the packager used will be assigned to somebody
125 on the machine. That person would then have write access to the kernel
126 source.</para>
127
128 <para>If the kernel source tree is going to be retained, run
129 <command>chown -R 0:0</command> on the <filename
130 class="directory">linux-&linux-version;</filename> directory to ensure
131 all files are owned by user <emphasis>root</emphasis>.</para>
132
133 <warning>
134 <para>Some kernel documentation recommends creating a symlink from
135 <filename class="symlink">/usr/src/linux</filename> pointing to the kernel
136 source directory. This is specific to kernels prior to the 2.6 series and
137 <emphasis>must not</emphasis> be created on an LFS system as it can cause
138 problems for packages you may wish to build once your base LFS system is
139 complete.</para>
140
141 <para>Also, the headers in the system's
142 <filename class="directory">include</filename> directory should
143 <emphasis>always</emphasis> be the ones against which Glibc was compiled,
144 that is, the sanitised headers from the Linux kernel tarball, and
145 therefore, should <emphasis>never</emphasis> be replaced by the raw kernel
146 headers.</para>
147 </warning>
148
149 </sect2>
150
151 <sect2 id="contents-kernel" role="content">
152 <title>Contents of Linux</title>
153
154 <segmentedlist>
155 <segtitle>Installed files</segtitle>
156
157 <seglistitem>
158 <seg>config-&linux-version;, lfskernel-&linux-version;, and
159 System.map-&linux-version;</seg>
160 </seglistitem>
161 </segmentedlist>
162
163 <variablelist>
164 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
165 <?dbfo list-presentation="list"?>
166 <?dbhtml list-presentation="table"?>
167
168 <varlistentry id="config">
169 <term><filename>config-&linux-version;</filename></term>
170 <listitem>
171 <para>Contains all the configuration selections for the kernel</para>
172 <indexterm zone="ch-bootable-kernel config">
173 <primary sortas="e-/boot/config">/boot/config-&linux-version;</primary>
174 </indexterm>
175 </listitem>
176 </varlistentry>
177
178 <varlistentry id="lfskernel">
179 <term><filename>lfskernel-&linux-version;</filename></term>
180 <listitem>
181 <para>The engine of the Linux system. When turning on the computer,
182 the kernel is the first part of the operating system that gets loaded.
183 It detects and initializes all components of the computer's hardware,
184 then makes these components available as a tree of files to the
185 software and turns a single CPU into a multitasking machine capable
186 of running scores of programs seemingly at the same time</para>
187 <indexterm zone="ch-bootable-kernel lfskernel">
188 <primary sortas="b-lfskernel">lfskernel-&linux-version;</primary>
189 </indexterm>
190 </listitem>
191 </varlistentry>
192
193 <varlistentry id="System.map">
194 <term><filename>System.map-&linux-version;</filename></term>
195 <listitem>
196 <para>A list of addresses and symbols; it maps the entry points and
197 addresses of all the functions and data structures in the
198 kernel</para>
199 <indexterm zone="ch-bootable-kernel System.map">
200 <primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary>
201 </indexterm>
202 </listitem>
203 </varlistentry>
204
205 </variablelist>
206
207 </sect2>
208
209</sect1>
Note: See TracBrowser for help on using the repository browser.