Changeset 2081905


Ignore:
Timestamp:
02/05/2004 10:17:48 PM (20 years ago)
Author:
Alex Gronenwoud <alex@…>
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
Message:

Simplifying the second copying of the kernel headers.

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

Files:
2 deleted
3 edited
1 moved

Legend:

Unmodified
Added
Removed
  • chapter06/chapter06.xml

    r2309b72 r2081905  
    297297
    298298&c6-makedev;
    299 &c6-kernel;
     299&c6-kernel-headers;
    300300&c6-manpages;
    301301&c6-glibc;
  • chapter06/kernel-headers.xml

    r2309b72 r2081905  
     1<sect1 id="ch-system-kernel-headers">
     2<title>Installing Linux-&kernel-version; headers</title>
     3<?dbhtml filename="kernelheaders.html" dir="chapter06"?>
     4
     5<screen>&buildtime; &kernel-time-headers;
     6&diskspace; &kernel-compsize-headers;</screen>
     7
    18<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
    29
    310<sect2>
    4 <title>Why we copy the kernel headers and don't symlink them</title>
     11<title>Installation of the kernel headers</title>
     12
     13<para>We won't be compiling a new kernel yet -- we'll do that when we have
     14finished the installation of all the packages. But the libraries installed in
     15the next section need to refer to the kernel header files in order to know how
     16to interface with the kernel. Instead of unpacking the kernel sources again,
     17making the version file and the symlinks and so on, we will simply copy the
     18headers from the temporary tools directory in one swoop:</para>
     19
     20<screen><userinput>cp -a /tools/include/{asm,asm-generic,linux} /usr/include</userinput></screen>
     21
     22<para>A few kernel header files refer to the <filename>autoconf.h</filename>
     23header file. Since we have not yet configured the kernel, we need to create
     24this file ourselves in order to avoid a compilation failure of Sysklogd.
     25Create an empty <filename>autoconf.h</filename> file with:</para>
     26
     27<screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen>
     28
     29</sect2>
     30
     31<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
     32
     33<sect2>
     34<title>Why we copy the kernel headers</title>
    535
    636<para>In the past it was common practice to symlink the
     
    4171</sect2>
    4272
     73</sect1>
     74
  • chapter08/kernel.xml

    r2309b72 r2081905  
    1111&aa-kernel-dep;
    1212
    13 &c8-kernel-inst;
     13<sect2><title>&nbsp;</title><para>&nbsp;</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
     19installation. If you don't like the way this book configures the kernel, view
     20the <filename>README</filename> file in the kernel source tree for alternative
     21methods.</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
     28recommends that this command be issued prior to <emphasis>each</emphasis>
     29kernel compilation. You shouldn't rely on the source tree being clean after
     30untarring.</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
     37situations. See the <filename>README</filename> file for more
     38information.</para>
     39
     40<para>If you wish, you may skip kernel configuration by simply copying the
     41kernel config file, <filename>.config</filename>, from your host system
     42(assuming it is available) to the unpacked <filename
     43class="directory">linux-&kernel-version;</filename> directory. However, we
     44don't recommend this option. You're much better off exploring all the
     45configuration menus and creating your own kernel configuration from
     46scratch.</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
     66to modules and to kernel configuration in general may be found in the
     67kernel documentation, which is found in the
     68<filename>linux-&kernel-version;/Documentation</filename> directory. The
     69modules.conf man page and the kernel HOWTO at
     70<ulink url="&tldp-root;HOWTO/Kernel-HOWTO.html"/> may also be of
     71interest 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
     78that 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
     87the installation. Some files need to be copied to the <filename>/boot</filename>
     88directory.</para>
     89
     90<para>The path to the kernel image may vary depending on the platform you're
     91using. 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
     96the function entrypoints of every function in the kernel API, as well as the
     97addresses of the kernel data structures for the running kernel. Issue the
     98following 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
     103produced by the <command>make menuconfig</command> step above. It contains all
     104the config selections for the kernel that was just compiled. It's a good idea
     105to 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
     110not 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
     112having the user and group IDs of whatever they were on the packager's computer.
     113This is usually not a problem for any other package you install because you
     114remove the source tree after the installation. But the Linux source tree is
     115often kept around for a long time, so there's a chance that whatever user ID
     116the packager used will be assigned to somebody on your machine and then that
     117person 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
     120run <userinput>chown -R 0:0</userinput> on the
     121<filename>linux-&kernel-version;</filename> directory to ensure all files are
     122owned by user <emphasis>root</emphasis>.</para>
     123
     124</sect2>
    14125
    15126&aa-kernel-shortdesc;
  • entities/kernel.ent

    r2309b72 r2081905  
    22<!ENTITY c5-kernelheaders-inst SYSTEM "../chapter05/kernelheaders-inst.xml">
    33
    4 <!ENTITY c6-kernel SYSTEM "../chapter06/kernel.xml">
    5 <!ENTITY c6-kernel-inst SYSTEM "../chapter06/kernel-inst.xml">
    6 <!ENTITY c6-kernel-exp-headers SYSTEM "../chapter06/kernel-exp-headers.xml">
     4<!ENTITY c6-kernel-headers SYSTEM "../chapter06/kernel-headers.xml">
    75
    86<!ENTITY c8-kernel SYSTEM "../chapter08/kernel.xml">
    9 <!ENTITY c8-kernel-inst SYSTEM "../chapter08/kernel-inst.xml">
    107
    118<!ENTITY aa-kernel-shortdesc SYSTEM "../appendixa/kernel-shortdesc.xml">
Note: See TracChangeset for help on using the changeset viewer.