[1987d72] | 1 | <sect1 id="ch06-kernel">
|
---|
[a20338e] | 2 | <title>Installing Linux-&kernel-version; headers</title>
|
---|
[1987d72] | 3 | <?dbhtml filename="kernel.html" dir="chapter06"?>
|
---|
| 4 |
|
---|
[0b74af3] | 5 | <screen>Estimated build time: &kernel-time-headers;
|
---|
| 6 | Estimated required disk space: &kernel-compsize-headers;</screen>
|
---|
[1987d72] | 7 |
|
---|
[ef2b63b] | 8 | &aa-kernel-shortdesc;
|
---|
| 9 | &aa-kernel-dep;
|
---|
[73aedd1d] | 10 |
|
---|
| 11 | <sect2><title> </title><para> </para></sect2>
|
---|
| 12 |
|
---|
| 13 | <sect2>
|
---|
| 14 | <title>Installation of the kernel headers</title>
|
---|
| 15 |
|
---|
| 16 | <para>We won't be compiling a new kernel yet -- we'll do that when we have
|
---|
| 17 | finished the installation of all the packages. But as some packages need the
|
---|
| 18 | kernel header files, we're going to unpack the kernel archive now, set it up
|
---|
| 19 | and copy the header files so they can be found by these packages.</para>
|
---|
| 20 |
|
---|
| 21 | <para>It is important to note that the files in the kernel source directory
|
---|
| 22 | are not owned by <emphasis>root</emphasis>. Whenever you unpack a package as
|
---|
| 23 | user <emphasis>root</emphasis> (like we do here inside chroot), the files end
|
---|
| 24 | up having the user and group IDs of whatever they were on the packager's
|
---|
| 25 | computer. This is usually not a
|
---|
| 26 | problem for any other package you install because you remove the source
|
---|
| 27 | tree after the installation. But the Linux kernel source tree is often kept
|
---|
| 28 | around for a long time, so there's a chance that whatever user ID the packager
|
---|
| 29 | used will be assigned to somebody on your machine and then that person would
|
---|
| 30 | have write access to the kernel source.</para>
|
---|
| 31 |
|
---|
| 32 | <para>In light of this, you might want to run <userinput>chown -R 0:0</userinput>
|
---|
| 33 | on the <filename>linux-&kernel-version;</filename> directory
|
---|
| 34 | to ensure all files are owned by user <emphasis>root</emphasis>.</para>
|
---|
| 35 |
|
---|
| 36 | <para>Prepare for header installation:</para>
|
---|
| 37 |
|
---|
| 38 | <screen><userinput>make mrproper</userinput></screen>
|
---|
| 39 |
|
---|
| 40 | <para>This ensures that the kernel tree is absolutely clean. The kernel team
|
---|
| 41 | recommends that this command be issued prior to <emphasis>each</emphasis> kernel
|
---|
| 42 | compilation. You shouldn't rely on the source tree being clean after
|
---|
| 43 | untarring.</para>
|
---|
| 44 |
|
---|
| 45 | <para>Create the <filename>include/linux/version.h</filename> file:</para>
|
---|
| 46 |
|
---|
| 47 | <screen><userinput>make include/linux/version.h</userinput></screen>
|
---|
| 48 |
|
---|
| 49 | <para>Create the platform-specific <filename>include/asm</filename>
|
---|
| 50 | symlink:</para>
|
---|
| 51 |
|
---|
| 52 | <screen><userinput>make symlinks</userinput></screen>
|
---|
| 53 |
|
---|
| 54 | <para>Install the platform specific-header files:</para>
|
---|
| 55 |
|
---|
| 56 | <screen><userinput>cp -HR include/asm /usr/include
|
---|
| 57 | cp -R include/asm-generic /usr/include</userinput></screen>
|
---|
| 58 |
|
---|
| 59 | <para>Install the cross-platform kernel header files:</para>
|
---|
| 60 |
|
---|
| 61 | <screen><userinput>cp -R include/linux /usr/include</userinput></screen>
|
---|
| 62 |
|
---|
| 63 | <para>There are a few kernel header files which make use of the
|
---|
| 64 | <filename>autoconf.h</filename> header file. Since we do not yet configure the
|
---|
| 65 | kernel, we need to create this file ourselves in order to avoid compilation
|
---|
| 66 | failures. Create an empty <filename>autoconf.h</filename> file:</para>
|
---|
| 67 |
|
---|
| 68 | <screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen>
|
---|
| 69 |
|
---|
| 70 | </sect2>
|
---|
[49f4dd5] | 71 | &c6-kernel-exp-headers;
|
---|
[1987d72] | 72 | </sect1>
|
---|
| 73 |
|
---|