diff options
Diffstat (limited to 'chapter05/kernelheaders-inst.xml')
-rw-r--r-- | chapter05/kernelheaders-inst.xml | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/chapter05/kernelheaders-inst.xml b/chapter05/kernelheaders-inst.xml new file mode 100644 index 000000000..3c2f5fe0d --- /dev/null +++ b/chapter05/kernelheaders-inst.xml @@ -0,0 +1,61 @@ +<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> + +<para><screen><userinput>make mrproper</userinput></screen></para> + +<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> + +<para><screen><userinput>make include/linux/version.h</userinput></screen></para> + +<para>Create the platform-specific <filename>include/asm</filename> +symlink:</para> + +<para><screen><userinput>make symlinks</userinput></screen></para> + +<para>Install the platform specific-header files:</para> + +<para><screen><userinput>cp -HR include/asm /stage1/include && +cp -R include/asm-generic /stage1/include</userinput></screen></para> + +<para>Install the cross-platform kernel header files:</para> + +<para><screen><userinput>cp -R include/linux /stage1/include</userinput></screen></para> + +<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> + +<para><screen><userinput>touch /stage1/include/linux/autoconf.h</userinput></screen></para> + +</sect2> + |