Converted kernel header install page to new layout.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2333 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Timothy Bauscher 2003-01-15 14:55:21 +00:00
parent f8fe1c1eeb
commit ef2b63b177
4 changed files with 56 additions and 22 deletions

View File

@ -1,3 +1,5 @@
<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Why we copy the kernel headers and don't symlink them</title>

View File

@ -1,10 +1,12 @@
<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
<sect2>
<title>Installation of the kernel headers</title>
<para>We won't be compiling a new kernel yet -- we'll do that when we have
finished the installation of all the packages. But as some packages need the
kernel header files, we're going to unpack the kernel archive now, set it up,
and copy the header files to where they will be found by these packages.</para>
kernel header files, we're going to unpack the kernel archive now, set it up
and copy the header files so they can be found by these packages.</para>
<para>It is important to note that the files in the kernel source directory
are not owned by root. Whenever you unpack a package as user root (like we
@ -12,26 +14,58 @@ do here inside chroot), the files end up having the user and group ID's of
whatever they were on the packager's computer. This is usually not a
problem for any other package you install because you remove the source
tree after the installation. But the Linux kernel source tree is often kept
around for a long time, so there's a chance whatever userid was used will
be assigned to somebody on your machine, and that person would get write
around for a long time, so there's a chance that whatever userid was used will
be assigned to somebody on your machine and that person would have write
access to the kernel source.</para>
<para>In light of this, you might want to run <userinput>chown
0.0</userinput> on the linux-&kernel-version; directory to ensure all files
are owned by user <emphasis>root</emphasis>.</para>
0.0</userinput> on the <filename>linux-&kernel-version;</filename> directory
to ensure all files are owned by user <emphasis>root</emphasis>.</para>
<para>The kernel headers are installed by running the following
commands:</para>
<para>Kernel header installation requires the <emphasis>pwd</emphasis> program.
In the kernel source, the path to the pwd program is hard-wired as /bin/pwd.
Create a symlink to account for that:</para>
<para><screen><userinput>ln -s /static/bin/pwd /bin/pwd &amp;&amp;
make mrproper &amp;&amp;
make include/linux/version.h &amp;&amp;
make symlinks &amp;&amp;
cp -HR include/asm /usr/include &amp;&amp;
cp -R include/asm-generic /usr/include &amp;&amp;
cp -R include/linux /usr/include &amp;&amp;
touch /usr/include/linux/autoconf.h &amp;&amp;
rm /bin/pwd</userinput></screen></para>
<para><screen><userinput>ln -s /static/bin/pwd /bin/pwd &amp;&amp;</userinput></screen></para>
<para>Prepare for header installation:</para>
<para><screen><userinput>make mrproper</userinput></screen></para>
<para>This ensures that the kernel tree is absolutely clean. The kernel team
recommends that this command be issued prior to <emphasis>each</emphasis> kernel
compilation. You shouldn't rely on the source tree being clean after
untarring.</para>
<para>Create the <filename>include/linux/version.h</filename> file:</para>
<para><screen><userinput>make include/linux/version.h</userinput></screen></para>
<para>Create the platform-specific <filename>include/asm</filename>
symlink:</para>
<para><screen><userinput>make symlinks</userinput></screen></para>
<para>Install the platform specific-header files:</para>
<para><screen><userinput>cp -HR include/asm /usr/include &amp;&amp;
cp -R include/asm-generic /usr/include</userinput></screen></para>
<para>Install the cross-platform kernel header files:</para>
<para><screen><userinput>cp -R include/linux /usr/include</userinput></screen></para>
<para>There are a few kernel header files which make use of the
<filename>autoconf.h</filename> header file. Since we do not yet configure the
kernel, we need to create this file ourselves in order to avoid compilation
failures. Create an empty autoconf.h file:</para>
<para><screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen></para>
<para>Since the <filename>/bin/pwd</filename> symlink we created earlier
was only temporary, it can now be removed:</para>
<para><screen><userinput>rm /bin/pwd</userinput></screen></para>
</sect2>

View File

@ -5,11 +5,10 @@
<screen>Estimated build time: &kernel-time-headers;
Estimated required disk space: &kernel-compsize-headers;</screen>
&c6-kernel-inst;
&c6-kernel-exp;
&c6-kernel-exp-headers;
&aa-kernel-desc;
&aa-kernel-shortdesc;
&aa-kernel-dep;
&c6-kernel-inst;
&c6-kernel-exp-headers;
</sect1>

View File

@ -2,7 +2,6 @@
<!ENTITY c6-kernel SYSTEM "../chapter06/kernel.xml">
<!ENTITY c6-kernel-inst SYSTEM "../chapter06/kernel-inst.xml">
<!ENTITY c6-kernel-exp SYSTEM "../chapter06/kernel-exp.xml">
<!ENTITY c6-kernel-exp-headers SYSTEM "../chapter06/kernel-exp-headers.xml">
<!ENTITY c6-kernel-manpages SYSTEM "../chapter06/kernel-manpages.xml">
<!ENTITY c6-kernel-manpages-inst SYSTEM "../chapter06/kernel-manpages-inst.xml">