From ef2b63b1777eb787c62686c51f0257cbf06637c6 Mon Sep 17 00:00:00 2001 From: Timothy Bauscher Date: Wed, 15 Jan 2003 14:55:21 +0000 Subject: Converted kernel header install page to new layout. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2333 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter06/kernel-exp-headers.xml | 2 ++ chapter06/kernel-inst.xml | 72 +++++++++++++++++++++++++++++----------- chapter06/kernel.xml | 5 ++- 3 files changed, 57 insertions(+), 22 deletions(-) (limited to 'chapter06') diff --git a/chapter06/kernel-exp-headers.xml b/chapter06/kernel-exp-headers.xml index 4c37a00e0..699c67d8c 100644 --- a/chapter06/kernel-exp-headers.xml +++ b/chapter06/kernel-exp-headers.xml @@ -1,3 +1,5 @@ +   + Why we copy the kernel headers and don't symlink them diff --git a/chapter06/kernel-inst.xml b/chapter06/kernel-inst.xml index ff09e3aa7..25e71ebd4 100644 --- a/chapter06/kernel-inst.xml +++ b/chapter06/kernel-inst.xml @@ -1,10 +1,12 @@ +   + Installation of the kernel headers 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 to where they will be found by these packages. +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. It is important to note that the files in the kernel source directory are not owned by root. Whenever you unpack a package as user root (like we @@ -12,26 +14,58 @@ do here inside chroot), the files end up having the user and group ID's 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 whatever userid was used will -be assigned to somebody on your machine, and that person would get write +around for a long time, so there's a chance that whatever userid was used will +be assigned to somebody on your machine and that person would have write access to the kernel source. In light of this, you might want to run chown -0.0 on the linux-&kernel-version; directory to ensure all files -are owned by user root. - -The kernel headers are installed by running the following -commands: - -ln -s /static/bin/pwd /bin/pwd && -make mrproper && -make include/linux/version.h && -make symlinks && -cp -HR include/asm /usr/include && -cp -R include/asm-generic /usr/include && -cp -R include/linux /usr/include && -touch /usr/include/linux/autoconf.h && -rm /bin/pwd +0.0 on the linux-&kernel-version; directory +to ensure all files are owned by user root. + +Kernel header installation requires the pwd program. +In the kernel source, the path to the pwd program is hard-wired as /bin/pwd. +Create a symlink to account for that: + +ln -s /static/bin/pwd /bin/pwd && + +Prepare for header installation: + +make mrproper + +This ensures that the kernel tree is absolutely clean. The kernel team +recommends that this command be issued prior to each kernel +compilation. You shouldn't rely on the source tree being clean after +untarring. + +Create the include/linux/version.h file: + +make include/linux/version.h + +Create the platform-specific include/asm +symlink: + +make symlinks + +Install the platform specific-header files: + +cp -HR include/asm /usr/include && +cp -R include/asm-generic /usr/include + +Install the cross-platform kernel header files: + +cp -R include/linux /usr/include + +There are a few kernel header files which make use of the +autoconf.h 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 autoconf.h file: + +touch /usr/include/linux/autoconf.h + +Since the /bin/pwd symlink we created earlier +was only temporary, it can now be removed: + +rm /bin/pwd diff --git a/chapter06/kernel.xml b/chapter06/kernel.xml index 74fb6bba0..f16c107ad 100644 --- a/chapter06/kernel.xml +++ b/chapter06/kernel.xml @@ -5,11 +5,10 @@ Estimated build time: &kernel-time-headers; Estimated required disk space: &kernel-compsize-headers; +&aa-kernel-shortdesc; +&aa-kernel-dep; &c6-kernel-inst; -&c6-kernel-exp; &c6-kernel-exp-headers; -&aa-kernel-desc; -&aa-kernel-dep; -- cgit v1.2.3-54-g00ecf