aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/kernel.xml
diff options
context:
space:
mode:
Diffstat (limited to 'chapter06/kernel.xml')
-rw-r--r--chapter06/kernel.xml63
1 files changed, 61 insertions, 2 deletions
diff --git a/chapter06/kernel.xml b/chapter06/kernel.xml
index f16c107ad..f154f00c5 100644
--- a/chapter06/kernel.xml
+++ b/chapter06/kernel.xml
@@ -7,8 +7,67 @@ Estimated required disk space: &kernel-compsize-headers;</screen>
&aa-kernel-shortdesc;
&aa-kernel-dep;
-&c6-kernel-inst;
-&c6-kernel-exp-headers;
+
+<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 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 <emphasis>root</emphasis>. Whenever you unpack a package as
+user <emphasis>root</emphasis> (like we do here inside chroot), the files end
+up having the user and group IDs 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 that whatever user ID the packager
+used will be assigned to somebody on your machine and then that person would
+have write access to the kernel source.</para>
+
+<para>In light of this, you might want to run <userinput>chown -R 0:0</userinput>
+on the <filename>linux-&kernel-version;</filename> directory
+to ensure all files are owned by user <emphasis>root</emphasis>.</para>
+
+<para>Prepare for header installation:</para>
+
+<screen><userinput>make mrproper</userinput></screen>
+
+<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>
+
+<screen><userinput>make include/linux/version.h</userinput></screen>
+
+<para>Create the platform-specific <filename>include/asm</filename>
+symlink:</para>
+
+<screen><userinput>make symlinks</userinput></screen>
+
+<para>Install the platform specific-header files:</para>
+
+<screen><userinput>cp -HR include/asm /usr/include
+cp -R include/asm-generic /usr/include</userinput></screen>
+
+<para>Install the cross-platform kernel header files:</para>
+
+<screen><userinput>cp -R include/linux /usr/include</userinput></screen>
+
+<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 <filename>autoconf.h</filename> file:</para>
+
+<screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen>
+
+</sect2>
</sect1>