source: chapter06/kernel-inst.xml@ 9c2045d

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 v4_1 v5_0 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 9c2045d was 9c2045d, checked in by Timothy Bauscher <timothy@…>, 21 years ago

Corrected kernel chown command. Update date.

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

  • Property mode set to 100644
File size: 3.1 KB
Line 
1<sect2><title>&nbsp;</title><para>&nbsp;</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
7finished the installation of all the packages. But as some packages need the
8kernel header files, we're going to unpack the kernel archive now, set it up
9and 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
12are not owned by root. Whenever you unpack a package as user root (like we
13do here inside chroot), the files end up having the user and group ID's of
14whatever they were on the packager's computer. This is usually not a
15problem for any other package you install because you remove the source
16tree after the installation. But the Linux kernel source tree is often kept
17around for a long time, so there's a chance that whatever userid was used will
18be assigned to somebody on your machine and that person would have write
19access to the kernel source.</para>
20
21<para>In light of this, you might want to run <userinput>chown -R 0:0</userinput>
22on the <filename>linux-&kernel-version;</filename> directory
23to ensure all files are owned by user <emphasis>root</emphasis>.</para>
24
25<para>Kernel header installation requires the <emphasis>pwd</emphasis> program.
26In the kernel source, the path to the pwd program is hard-wired as /bin/pwd.
27Create a symlink to account for that:</para>
28
29<para><screen><userinput>ln -s /static/bin/pwd /bin/pwd &amp;&amp;</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
36recommends that this command be issued prior to <emphasis>each</emphasis> kernel
37compilation. You shouldn't rely on the source tree being clean after
38untarring.</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>
45symlink:</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 &amp;&amp;
52cp -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
60kernel, we need to create this file ourselves in order to avoid compilation
61failures. 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
66was only temporary, it can now be removed:</para>
67
68<para><screen><userinput>rm /bin/pwd</userinput></screen></para>
69
70</sect2>
71
Note: See TracBrowser for help on using the repository browser.