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