source: chapter08/kernel.xml@ f6d7f48

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 f6d7f48 was f6d7f48, checked in by Matthew Burgess <matthew@…>, 18 years ago

Upgrade to Linux-2.6.18

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7809 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.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/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 ones from the Linux-Libc-Headers package, and therefore, should
145 <emphasis>never</emphasis> be replaced by the kernel headers.</para>
146 </warning>
147
148 </sect2>
149
150 <sect2 id="contents-kernel" role="content">
151 <title>Contents of Linux</title>
152
153 <segmentedlist>
154 <segtitle>Installed files</segtitle>
155
156 <seglistitem>
157 <seg>config-&linux-version;, lfskernel-&linux-version;, and
158 System.map-&linux-version;</seg>
159 </seglistitem>
160 </segmentedlist>
161
162 <variablelist>
163 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
164 <?dbfo list-presentation="list"?>
165 <?dbhtml list-presentation="table"?>
166
167 <varlistentry id="config">
168 <term><filename>config-&linux-version;</filename></term>
169 <listitem>
170 <para>Contains all the configuration selections for the kernel</para>
171 <indexterm zone="ch-bootable-kernel config">
172 <primary sortas="e-/boot/config">/boot/config-&linux-version;</primary>
173 </indexterm>
174 </listitem>
175 </varlistentry>
176
177 <varlistentry id="lfskernel">
178 <term><filename>lfskernel-&linux-version;</filename></term>
179 <listitem>
180 <para>The engine of the Linux system. When turning on the computer,
181 the kernel is the first part of the operating system that gets loaded.
182 It detects and initializes all components of the computer's hardware,
183 then makes these components available as a tree of files to the
184 software and turns a single CPU into a multitasking machine capable
185 of running scores of programs seemingly at the same time</para>
186 <indexterm zone="ch-bootable-kernel lfskernel">
187 <primary sortas="b-lfskernel">lfskernel-&linux-version;</primary>
188 </indexterm>
189 </listitem>
190 </varlistentry>
191
192 <varlistentry id="System.map">
193 <term><filename>System.map-&linux-version;</filename></term>
194 <listitem>
195 <para>A list of addresses and symbols; it maps the entry points and
196 addresses of all the functions and data structures in the
197 kernel</para>
198 <indexterm zone="ch-bootable-kernel System.map">
199 <primary sortas="e-/boot/System.map">/boot/System.map-&linux-version;</primary>
200 </indexterm>
201 </listitem>
202 </varlistentry>
203
204 </variablelist>
205
206 </sect2>
207
208</sect1>
Note: See TracBrowser for help on using the repository browser.