kernel-inst.xml 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
  2. <sect2>
  3. <title>Installation of the kernel headers</title>
  4. <para>We won't be compiling a new kernel yet -- we'll do that when we have
  5. finished the installation of all the packages. But as some packages need the
  6. kernel header files, we're going to unpack the kernel archive now, set it up
  7. and copy the header files so they can be found by these packages.</para>
  8. <para>It is important to note that the files in the kernel source directory
  9. are not owned by root. Whenever you unpack a package as user root (like we
  10. do here inside chroot), the files end up having the user and group ID's of
  11. whatever they were on the packager's computer. This is usually not a
  12. problem for any other package you install because you remove the source
  13. tree after the installation. But the Linux kernel source tree is often kept
  14. around for a long time, so there's a chance that whatever userid was used will
  15. be assigned to somebody on your machine and that person would have write
  16. access to the kernel source.</para>
  17. <para>In light of this, you might want to run <userinput>chown -R 0:0</userinput>
  18. on the <filename>linux-&kernel-version;</filename> directory
  19. to ensure all files are owned by user <emphasis>root</emphasis>.</para>
  20. <para>Kernel header installation requires the <emphasis>pwd</emphasis> program.
  21. In the kernel source, the path to the pwd program is hard-wired as /bin/pwd.
  22. Create a symlink to account for that:</para>
  23. <para><screen><userinput>ln -s /static/bin/pwd /bin/pwd &amp;&amp;</userinput></screen></para>
  24. <para>Prepare for header installation:</para>
  25. <para><screen><userinput>make mrproper</userinput></screen></para>
  26. <para>This ensures that the kernel tree is absolutely clean. The kernel team
  27. recommends that this command be issued prior to <emphasis>each</emphasis> kernel
  28. compilation. You shouldn't rely on the source tree being clean after
  29. untarring.</para>
  30. <para>Create the <filename>include/linux/version.h</filename> file:</para>
  31. <para><screen><userinput>make include/linux/version.h</userinput></screen></para>
  32. <para>Create the platform-specific <filename>include/asm</filename>
  33. symlink:</para>
  34. <para><screen><userinput>make symlinks</userinput></screen></para>
  35. <para>Install the platform specific-header files:</para>
  36. <para><screen><userinput>cp -HR include/asm /usr/include &amp;&amp;
  37. cp -R include/asm-generic /usr/include</userinput></screen></para>
  38. <para>Install the cross-platform kernel header files:</para>
  39. <para><screen><userinput>cp -R include/linux /usr/include</userinput></screen></para>
  40. <para>There are a few kernel header files which make use of the
  41. <filename>autoconf.h</filename> header file. Since we do not yet configure the
  42. kernel, we need to create this file ourselves in order to avoid compilation
  43. failures. Create an empty autoconf.h file:</para>
  44. <para><screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen></para>
  45. <para>Since the <filename>/bin/pwd</filename> symlink we created earlier
  46. was only temporary, it can now be removed:</para>
  47. <para><screen><userinput>rm /bin/pwd</userinput></screen></para>
  48. </sect2>