mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-03-06 06:14:47 +00:00
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:
parent
f8fe1c1eeb
commit
ef2b63b177
@ -1,3 +1,5 @@
|
||||
<sect2><title> </title><para> </para></sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Why we copy the kernel headers and don't symlink them</title>
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
<sect2><title> </title><para> </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 &&
|
||||
make mrproper &&
|
||||
make include/linux/version.h &&
|
||||
make symlinks &&
|
||||
cp -HR include/asm /usr/include &&
|
||||
cp -R include/asm-generic /usr/include &&
|
||||
cp -R include/linux /usr/include &&
|
||||
touch /usr/include/linux/autoconf.h &&
|
||||
rm /bin/pwd</userinput></screen></para>
|
||||
<para><screen><userinput>ln -s /static/bin/pwd /bin/pwd &&</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 &&
|
||||
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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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">
|
||||
|
Loading…
Reference in New Issue
Block a user