The Linux Kernel HOWTO

Al Dev (Alavoor Vasudevan)

v7.3, 27 Oct 2003

Abstract

This is a detailed guide to kernel configuration, compilation, upgrades, and troubleshooting for ix86-based systems. Can be useful for other architectures as well. This document is kept small & simple, so that even non-technical "home computer users" will be able to compile and run the Linux Kernel.


Table of Contents

1. Introduction
1.1. WARNING NOTICE
2. Quick Steps - Kernel Compile
2.1. Precautionary Preparations
2.2. Minor Upgrading of Kernel
2.3. New Release Changes: Documentation
2.4. For the Impatient
2.5. Building New Kernel - Explanation of Steps
2.6. Troubleshooting
2.7. Post Kernel Building
2.8. Where to Report Bugs ?
3. Loadable Modules
3.1. Installing the module utilities
3.2. Modules distributed with the kernel
3.3. Howto Install Just A Single Module ?
4. Cloning of Linux Kernels
5. Important questions and their answers
5.1. What does the kernel do, anyway?
5.2. Why would I want to upgrade my kernel?
5.3. What kind of hardware do the newer kernels support?
5.4. What version of gcc and libc do I need?
5.5. What's a loadable module?
5.6. How much disk space do I need?
5.7. How long does it take?
6. Patching the kernel
6.1. Applying a patch
6.2. If something goes wrong
6.3. Getting rid of the .orig files
6.4. Other patches
7. Tips and tricks
7.1. Redirecting output of the make or patch commands
7.2. Conditional kernel install
7.3. Kernel updates
8. Mount RPMs With FTPFS
8.1. Using the ftpfs
8.2. The ftpfs Commands
9. Linux Kernel Textbooks and Documents
10. Kernel Files Information
10.1. vmlinuz and vmlinux
10.2. Bootloader Files
10.3. Message File
10.4. initrd.img
10.5. bzImage
10.6. module-info
10.7. config
10.8. grub
10.9. System.map
11. Linux System Administration Tools
12. Install, Upgrade at Speed of Light With apt-get (Redhat, Debian, Suse, Mandrake, Others)
12.1. Source Code of 'apt-get'
12.2. The 'rpmfind' Tool
13. Advanced Topics - Linux Boot Process
13.1. References for Boot Process
14. Other Formats of this Document
14.1. Acrobat PDF format
14.2. Convert Linuxdoc to Docbook format
14.3. Convert to MS WinHelp format
14.4. Reading various formats
15. Appendix A - Creating initrd.img file
15.1. Using mkinitrd
15.2. Kernel Docs
15.3. Linuxman Book
16. Appendix B - Sample lilo.conf
16.1. Resources on LILO
16.2. Troubleshooting LILO
16.3. Sample on LILO
17. Appendix C - GRUB Details And A Sample grub.conf
17.1. References on GRUB
17.2. Tips On GRUB
17.3. Sample GRUB Conf File
18. Appendix D - Post Kernel Building
19. Appendix E - Troubleshoot Common Mistakes
19.1. Kernel Compiles OK but make modules fail
19.2. Compiles OK but does not boot
19.3. The System Hangs at LILO
19.4. No init found
19.5. Lot of Compile Errors
19.6. The 'depmod' gives "Unresolved symbol error messages"
19.7. Kernel Does Not Load Module - "Unresolved symbols" Error Messages
19.8. Kernel fails to load a module
19.9. Loadable modules
19.10. See Kernel Documentations
19.11. make clean
19.12. Huge or slow kernels
19.13. The parallel port doesn't work/my printer doesn't work
19.14. Kernel doesn't compile
19.15. New version of the kernel doesn't seem to boot
19.16. You forgot to run LILO, or system doesn't boot at all
19.17. It says `warning: bdflush not running'
19.18. I can't get my IDE/ATAPI CD-ROM drive to work
19.19. It says weird things about obsolete routing requests
19.20. ``Not a compressed kernel Image file''
19.21. Problems with console terminal after upgrade to Linux v1.3.x
19.22. Can't seem to compile things after kernel upgrade
19.23. Increasing limits
19.24. Where To Report Bugs?