2004-01-27 22:29:49 +00:00
|
|
|
<sect1 id="ch-system-kernel-headers">
|
2003-01-01 14:27:12 +00:00
|
|
|
<title>Installing Linux-&kernel-version; headers</title>
|
2002-05-25 01:21:12 +01:00
|
|
|
<?dbhtml filename="kernel.html" dir="chapter06"?>
|
|
|
|
|
2004-01-27 22:27:44 +00:00
|
|
|
<screen>&buildtime; &kernel-time-headers;
|
|
|
|
&diskspace; &kernel-compsize-headers;</screen>
|
2002-05-25 01:21:12 +01:00
|
|
|
|
2003-11-01 22:31:50 +00:00
|
|
|
<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 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>
|
2003-11-02 12:22:24 +00:00
|
|
|
&c6-kernel-exp-headers;
|
2002-05-25 01:21:12 +01:00
|
|
|
</sect1>
|
|
|
|
|