source: chapter06/kernel.xml@ 01a9d0ca

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 01a9d0ca was 01a9d0ca, checked in by Greg Schafer <greg@…>, 20 years ago

Minor adjustments to some section ids for better interaction
with lfscmd testing tool. Internal change only.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3144 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 2.9 KB
Line 
1<sect1 id="ch06-kernel-headers">
2<title>Installing Linux-&kernel-version; headers</title>
3<?dbhtml filename="kernel.html" dir="chapter06"?>
4
5<screen>Estimated build time: &kernel-time-headers;
6Estimated required disk space: &kernel-compsize-headers;</screen>
7
8&aa-kernel-shortdesc;
9&aa-kernel-dep;
10
11<sect2><title>&nbsp;</title><para>&nbsp;</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
17finished the installation of all the packages. But as some packages need the
18kernel header files, we're going to unpack the kernel archive now, set it up
19and 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
22are not owned by <emphasis>root</emphasis>. Whenever you unpack a package as
23user <emphasis>root</emphasis> (like we do here inside chroot), the files end
24up having the user and group IDs of whatever they were on the packager's
25computer. This is usually not a
26problem for any other package you install because you remove the source
27tree after the installation. But the Linux kernel source tree is often kept
28around for a long time, so there's a chance that whatever user ID the packager
29used will be assigned to somebody on your machine and then that person would
30have 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>
33on the <filename>linux-&kernel-version;</filename> directory
34to 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
41recommends that this command be issued prior to <emphasis>each</emphasis> kernel
42compilation. You shouldn't rely on the source tree being clean after
43untarring.</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>
50symlink:</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
57cp -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
65kernel, we need to create this file ourselves in order to avoid compilation
66failures. Create an empty <filename>autoconf.h</filename> file:</para>
67
68<screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen>
69
70</sect2>
71&c6-kernel-exp-headers;
72</sect1>
73
Note: See TracBrowser for help on using the repository browser.