diff options
Diffstat (limited to 'chapter06')
-rw-r--r-- | chapter06/chapter06.xml | 2 | ||||
-rw-r--r-- | chapter06/kernel-headers.xml (renamed from chapter06/kernel-exp-headers.xml) | 34 | ||||
-rw-r--r-- | chapter06/kernel.xml | 70 |
3 files changed, 34 insertions, 72 deletions
diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml index 39dc0139a..a9ddc2a71 100644 --- a/chapter06/chapter06.xml +++ b/chapter06/chapter06.xml @@ -296,7 +296,7 @@ file records the bad login attempts.</para> &c6-makedev; -&c6-kernel; +&c6-kernel-headers; &c6-manpages; &c6-glibc; diff --git a/chapter06/kernel-exp-headers.xml b/chapter06/kernel-headers.xml index 9829fe2c9..14d73d992 100644 --- a/chapter06/kernel-exp-headers.xml +++ b/chapter06/kernel-headers.xml @@ -1,7 +1,37 @@ +<sect1 id="ch-system-kernel-headers"> +<title>Installing Linux-&kernel-version; headers</title> +<?dbhtml filename="kernelheaders.html" dir="chapter06"?> + +<screen>&buildtime; &kernel-time-headers; +&diskspace; &kernel-compsize-headers;</screen> + <sect2><title> </title><para> </para></sect2> <sect2> -<title>Why we copy the kernel headers and don't symlink them</title> +<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 the libraries installed in +the next section need to refer to the kernel header files in order to know how +to interface with the kernel. Instead of unpacking the kernel sources again, +making the version file and the symlinks and so on, we will simply copy the +headers from the temporary tools directory in one swoop:</para> + +<screen><userinput>cp -a /tools/include/{asm,asm-generic,linux} /usr/include</userinput></screen> + +<para>A few kernel header files refer to the <filename>autoconf.h</filename> +header file. Since we have not yet configured the kernel, we need to create +this file ourselves in order to avoid a compilation failure of Sysklogd. +Create an empty <filename>autoconf.h</filename> file with:</para> + +<screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen> + +</sect2> + +<sect2><title> </title><para> </para></sect2> + +<sect2> +<title>Why we copy the kernel headers</title> <para>In the past it was common practice to symlink the <filename class="directory">/usr/include/{linux,asm}</filename> directories @@ -40,3 +70,5 @@ symlinks.</para> </sect2> +</sect1> + diff --git a/chapter06/kernel.xml b/chapter06/kernel.xml deleted file mode 100644 index b90356b67..000000000 --- a/chapter06/kernel.xml +++ /dev/null @@ -1,70 +0,0 @@ -<sect1 id="ch-system-kernel-headers"> -<title>Installing Linux-&kernel-version; headers</title> -<?dbhtml filename="kernel.html" dir="chapter06"?> - -<screen>&buildtime; &kernel-time-headers; -&diskspace; &kernel-compsize-headers;</screen> - -<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> -&c6-kernel-exp-headers; -</sect1> - |