Changeset 81fd230 for chapter08/kernel.xml
- Timestamp:
- 02/19/2005 10:16:42 PM (19 years ago)
- Branches:
- 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.1, 6.1.1, 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
- Children:
- 3d31fc4
- Parents:
- 2f9131f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/kernel.xml
r2f9131f r81fd230 4 4 %general-entities; 5 5 ]> 6 <sect1 id="ch-bootable-kernel" xreflabel="Linux"role="wrap">6 <sect1 id="ch-bootable-kernel" role="wrap"> 7 7 <title>Linux-&linux-version;</title> 8 8 <?dbhtml filename="kernel.html"?> … … 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Linux package contains the kernel and the header files.</para> 13 14 14 15 <segmentedlist> 15 16 <segtitle>&buildtime;</segtitle> 16 17 <segtitle>&diskspace;</segtitle> 17 <seglistitem><seg> All default options:4.20 SBU</seg>18 <seg> All default options:181 MB</seg></seglistitem>18 <seglistitem><seg>4.20 SBU</seg> 19 <seg>181 MB</seg></seglistitem> 19 20 </segmentedlist> 20 21 22 <segmentedlist> 23 <segtitle>Linux installation depends on</segtitle> 24 <seglistitem><seg>Bash, Binutils, Coreutils, Findutils, 25 GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, and Sed</seg></seglistitem> 26 </segmentedlist> 21 27 </sect2> 22 28 23 29 <sect2 role="installation"> 24 30 <title>Installation of the kernel</title> 31 32 <para>Building the kernel involves a few steps—configuration, 33 compilation, and installation. Read the <filename>README</filename> 34 file in the kernel source tree for alternate methods to the way this 35 book configures the kernel.</para> 25 36 26 37 <para>Kernel version 2.6.10 has a security vulnerability that will allow user … … 34 45 <screen><userinput>make mrproper</userinput></screen> 35 46 36 <!--NEW: the sed command has been removed--> 37 38 <para>If, in <xref linkend="ch-scripts-console"/>, you decided you want 39 to compile the keymap into the kernel, issue the command below:</para> 47 <para>This ensures that the kernel tree is absolutely clean. The 48 kernel team recommends that this command be issued prior to each 49 kernel compilation. Do not rely on the source tree being clean after 50 un-tarring.</para> 51 52 <para>If, in <xref linkend="ch-scripts-console" role=","/> it was decided to 53 compile the keymap into the kernel, issue the command below:</para> 40 54 41 55 <screen><userinput>loadkeys -m /usr/share/kbd/keymaps/<replaceable>[path to keymap]</replaceable> > \ 42 56 drivers/char/defkeymap.c</userinput></screen> 43 57 44 <para>Configure the kernel via a menu-driven interface. BLFS has some 45 information regarding particular kernel configuration requirements of 46 packages outside of LFS at 47 <ulink url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>.</para> 58 <para>For example, if using a Dutch keyboard, use 59 <phrase 60 condition="html"><filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename></phrase><phrase 61 condition="pdf"><filename>/usr/share/kbd/keymaps/i386/ 62 qwerty/nl.map.gz</filename></phrase>.</para> 63 64 <para>Configure the kernel via a menu-driven interface:</para> 48 65 49 66 <screen><userinput>make menuconfig</userinput></screen> 50 67 68 <para>Alternatively, <command>make oldconfig</command> may be more appropriate in some 69 situations. See the <filename>README</filename> file for more 70 information.</para> 71 72 <note><para>When configuring the kernel, be sure to enable the 73 <quote>Support for hot-pluggable devices</quote> option under the 74 <quote>General Setup</quote> menu. This enables hotplug events that 75 are used by <command>udev</command> to populate the <filename 76 class="directory">/dev</filename> directory with device 77 nodes.</para></note> 78 79 <para>If desired, skip kernel configuration by copying the kernel 80 config file, <filename>.config</filename>, from the host system 81 (assuming it is available) to the unpacked <filename 82 class="directory">linux-&linux-version;</filename> directory. However, 83 we do not recommend this option. It is often better to explore all the 84 configuration menus and create the kernel configuration from 85 scratch.</para> 86 87 <para>For POSIX-shared memory support, ensure that the kernel config 88 option <quote>Virtual memory file system support</quote> is enabled. 89 It resides within the <quote>File systems</quote> menu and is normally 90 enabled by default.</para> 91 92 <para>LFS bootscripts make the assumption that either both 93 <quote>Support for Host-side USB</quote> and <quote>USB device 94 filesystem</quote> have been compiled directly into the kernel, or 95 that neither is compiled at all. Bootscripts will not work properly 96 if it is a module (usbcore.ko).</para> 97 98 <note><para>NPTL requires the kernel to be compiled with GCC 3.x, in 99 this case &gcc-version;. Compiling with 2.95.x is known to cause failures in 100 the glibc test suite, so it is not recommended to compile the kernel 101 with gcc 2.95.x.</para></note> 102 51 103 <para>Compile the kernel image and modules:</para> 52 104 53 105 <screen><userinput>make</userinput></screen> 54 106 55 <para>Install the modules, if your kernel configuration uses them:</para> 107 <para>If using kernel modules, an 108 <filename>/etc/modprobe.conf</filename> file may be needed. 109 Information pertaining to modules and kernel configuration is 110 located in the kernel documentation in the <filename 111 class="directory">linux-&linux-version;/Documentation</filename> 112 directory. The <emphasis>modprobe.conf</emphasis> man page may also be 113 of interest.</para> 114 115 <para>Be very careful when reading other documentation because it 116 usually applies to 2.4.x kernels only. As far as we know, kernel 117 configuration issues specific to Hotplug and Udev are not documented. 118 The problem is that Udev will create a device node only if Hotplug or 119 a user-written script inserts the corresponding module into the 120 kernel, and not all modules are detectable by Hotplug. Note that 121 statements like the one below in the 122 <filename>/etc/modprobe.conf</filename> file do not work with 123 Udev:</para> 124 125 <para><screen>alias char-major-XXX some-module</screen></para> 126 127 <para>Because of the complications with Hotplug, Udev, and modules, we 128 strongly recommend starting with a completely non-modular kernel 129 configuration, especially if this is the first time using Udev.</para> 130 131 <para>Install the modules, if the kernel configuration uses them:</para> 56 132 57 133 <screen><userinput>make modules_install</userinput></screen> 58 134 59 <para>The path to the kernel image may vary depending on the platform you're 60 using. Issue the following command to install the kernel:</para> 135 <para>If there are many modules and very little space, consider 136 stripping and compressing the modules. For most users, such 137 compression is not worth the time, but if the system is pressed for 138 space, see <ulink 139 url="http://www.linux-mips.org/archives/linux-mips/2002-04/msg00031.html"/>.</para> 140 141 <para>After kernel compilation is complete, additional steps are 142 required to complete the installation. Some files need to be copied to 143 the <filename class="directory">/boot</filename> directory.</para> 144 145 <para>The path to the kernel image may vary depending on the platform 146 being used. Issue the following command to install the kernel:</para> 61 147 62 148 <screen><userinput>cp arch/i386/boot/bzImage /boot/lfskernel-&linux-version;</userinput></screen> 63 149 150 <para><filename>System.map</filename> is a symbol file for the kernel. 151 It maps the function entry points of every function in the kernel API, 152 as well as the addresses of the kernel data structures for the running 153 kernel. Issue the following command to install the map file:</para> 154 64 155 <screen><userinput>cp System.map /boot/System.map-&linux-version;</userinput></screen> 65 156 157 <para>The kernel configuration file <filename>.config</filename> 158 produced by the <command>make menuconfig</command> step 159 above contains all the configuration selections for the kernel 160 that was just compiled. It is a good idea to keep this file for future 161 reference:</para> 162 66 163 <screen><userinput>cp .config /boot/config-&linux-version;</userinput></screen> 67 164 68 <para>If you are going to keep the kernel source tree around, you may want to 69 run <command>chown -R 0:0</command> on the 70 <filename class="directory">linux-&linux-version;</filename> directory to ensure all files are 71 owned by user <emphasis>root</emphasis>.</para> 165 <para>It is important to note that the files in the kernel source 166 directory are not owned by <emphasis>root</emphasis>. Whenever a 167 package is unpacked as user <emphasis>root</emphasis> (like we did 168 inside chroot), the files have the user and group IDs of whatever 169 they were on the packager's computer. This is usually not a problem 170 for any other package to be installed because the source tree is 171 removed after the installation. However, the Linux source tree is 172 often retained for a long time. Because of this, there is a chance 173 that whatever user ID the packager used will be assigned to somebody 174 on the machine. That person would then have write access to the kernel 175 source.</para> 176 177 <para>If the kernel source tree is going to be retained, run 178 <command>chown -R 0:0</command> on the <filename 179 class="directory">linux-&linux-version;</filename> directory to ensure 180 all files are owned by user <emphasis>root</emphasis>.</para> 181 182 <warning><para>Some kernel documentation recommends creating a symlink from 183 <filename class="symlink">/usr/src/linux</filename> pointing to the kernel 184 source directory. This is specific to kernels prior to the 2.6 series and 185 <emphasis>must not</emphasis> be created on an LFS system as it can cause 186 problems for packages you may wish to build once your base LFS system is 187 complete.</para></warning> 72 188 73 189 </sect2> … … 76 192 <sect2 id="contents-kernel" role="content"><title>Contents of Linux</title> 77 193 78 <para>See testing</para> 194 <segmentedlist> 195 <segtitle>Installed files</segtitle> 196 <seglistitem><seg>kernel, kernel headers, 197 and System.map</seg></seglistitem> 198 </segmentedlist> 199 200 <variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead> 201 <?dbfo list-presentation="list"?> 202 203 <varlistentry id="kernel"> 204 <term><filename>kernel</filename></term> 205 <listitem> 206 <para>The engine of the Linux system. When turning on the computer, 207 the kernel is the first part of the operating system that gets loaded. 208 It detects and initializes all components of the computer's hardware, 209 then makes these components available as a tree of files to the 210 software and turns a single CPU into a multitasking machine capable 211 of running scores of programs seemingly at the same time.</para> 212 <indexterm zone="ch-bootable-kernel kernel"><primary sortas="b-kernel">kernel</primary></indexterm> 213 </listitem> 214 </varlistentry> 215 216 <varlistentry id="kernel-headers"> 217 <term><filename>kernel headers</filename></term> 218 <listitem> 219 <para>Defines the interface to the services that the kernel provides. 220 The headers in the system's <filename 221 class="directory">include</filename> directory should 222 <emphasis>always</emphasis> be the ones against which Glibc was 223 compiled and therefore, should <emphasis>not</emphasis> be replaced 224 when upgrading the kernel.</para> 225 <indexterm zone="ch-bootable-kernel kernel-headers"><primary sortas="e-kernel-headers">kernel headers</primary></indexterm> 226 </listitem> 227 </varlistentry> 228 229 <varlistentry id="System.map"> 230 <term><filename>System.map</filename></term> 231 <listitem> 232 <para>A list of addresses and symbols; it maps the entry points and 233 addresses of all the functions and data structures in the 234 kernel</para> 235 <indexterm zone="ch-bootable-kernel System.map"><primary sortas="e-/boot/System.map">/boot/System.map</primary></indexterm> 236 </listitem> 237 </varlistentry> 238 </variablelist> 79 239 80 240 </sect2> 81 241 82 242 </sect1> 243
Note:
See TracChangeset
for help on using the changeset viewer.