Changeset 2081905 for chapter08/kernel.xml
- Timestamp:
- 02/05/2004 10:17:48 PM (20 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.0, 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, v5_1, v5_1_1, 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:
- 0dda614
- Parents:
- 2309b72
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/kernel.xml
r2309b72 r2081905 11 11 &aa-kernel-dep; 12 12 13 &c8-kernel-inst; 13 <sect2><title> </title><para> </para></sect2> 14 15 <sect2> 16 <title>Installation of the kernel</title> 17 18 <para>Building the kernel involves a few steps: configuration, compilation, and 19 installation. If you don't like the way this book configures the kernel, view 20 the <filename>README</filename> file in the kernel source tree for alternative 21 methods.</para> 22 23 <para>Prepare for compilation by running the following command:</para> 24 25 <screen><userinput>make mrproper</userinput></screen> 26 27 <para>This ensures that the kernel tree is absolutely clean. The kernel team 28 recommends that this command be issued prior to <emphasis>each</emphasis> 29 kernel compilation. You shouldn't rely on the source tree being clean after 30 untarring.</para> 31 32 <para>Configure the kernel via a menu-driven interface:</para> 33 34 <screen><userinput>make menuconfig</userinput></screen> 35 36 <para><userinput>make oldconfig</userinput> may be more appropriate in some 37 situations. See the <filename>README</filename> file for more 38 information.</para> 39 40 <para>If you wish, you may skip kernel configuration by simply copying the 41 kernel config file, <filename>.config</filename>, from your host system 42 (assuming it is available) to the unpacked <filename 43 class="directory">linux-&kernel-version;</filename> directory. However, we 44 don't recommend this option. You're much better off exploring all the 45 configuration menus and creating your own kernel configuration from 46 scratch.</para> 47 48 <para>For POSIX shared memory support, ensure that the kernel config option 49 "Virtual memory file system support" is enabled. It resides within the 50 "File systems" menu and is normally enabled by default.</para> 51 52 <para>Verify dependencies and create dependency information files:</para> 53 54 <screen><userinput>make CC=/opt/gcc-2.95.3/bin/gcc dep</userinput></screen> 55 56 <para>Compile the kernel image:</para> 57 58 <screen><userinput>make CC=/opt/gcc-2.95.3/bin/gcc bzImage</userinput></screen> 59 60 <para>Compile the drivers which have been configured as modules:</para> 61 62 <screen><userinput>make CC=/opt/gcc-2.95.3/bin/gcc modules</userinput></screen> 63 64 <para>If you intend to use kernel modules, you will need an 65 <filename>/etc/modules.conf</filename> file. Information pertaining 66 to modules and to kernel configuration in general may be found in the 67 kernel documentation, which is found in the 68 <filename>linux-&kernel-version;/Documentation</filename> directory. The 69 modules.conf man page and the kernel HOWTO at 70 <ulink url="&tldp-root;HOWTO/Kernel-HOWTO.html"/> may also be of 71 interest to you.</para> 72 73 <para>Install the modules:</para> 74 75 <screen><userinput>make CC=/opt/gcc-2.95.3/bin/gcc modules_install</userinput></screen> 76 77 <para>As nothing is complete without documentation, build the manual pages 78 that come with the kernel:</para> 79 80 <screen><userinput>make mandocs</userinput></screen> 81 82 <para>And install these pages:</para> 83 84 <screen><userinput>cp -a Documentation/man /usr/share/man/man9</userinput></screen> 85 86 <para>Kernel compilation has finished but more steps are required to complete 87 the installation. Some files need to be copied to the <filename>/boot</filename> 88 directory.</para> 89 90 <para>The path to the kernel image may vary depending on the platform you're 91 using. Issue the following command to install the kernel:</para> 92 93 <screen><userinput>cp arch/i386/boot/bzImage /boot/lfskernel</userinput></screen> 94 95 <para><filename>System.map</filename> is a symbol file for the kernel. It maps 96 the function entrypoints of every function in the kernel API, as well as the 97 addresses of the kernel data structures for the running kernel. Issue the 98 following command to install the map file:</para> 99 100 <screen><userinput>cp System.map /boot</userinput></screen> 101 102 <para><filename>.config</filename> is the kernel configuration file that was 103 produced by the <command>make menuconfig</command> step above. It contains all 104 the config selections for the kernel that was just compiled. It's a good idea 105 to keep this file for future reference:</para> 106 107 <screen><userinput>cp .config /boot/config-lfskernel</userinput></screen> 108 109 <para>It is important to note that the files in the kernel source directory are 110 not owned by <emphasis>root</emphasis>. Whenever you unpack a package as user 111 <emphasis>root</emphasis> (like we did here inside chroot), the files end up 112 having the user and group IDs of whatever they were on the packager's computer. 113 This is usually not a problem for any other package you install because you 114 remove the source tree after the installation. But the Linux source tree is 115 often kept around for a long time, so there's a chance that whatever user ID 116 the packager used will be assigned to somebody on your machine and then that 117 person would have write access to the kernel source.</para> 118 119 <para>If you are going to keep the kernel source tree around, you may want to 120 run <userinput>chown -R 0:0</userinput> on the 121 <filename>linux-&kernel-version;</filename> directory to ensure all files are 122 owned by user <emphasis>root</emphasis>.</para> 123 124 </sect2> 14 125 15 126 &aa-kernel-shortdesc;
Note:
See TracChangeset
for help on using the changeset viewer.