how to build and install modules, and how to compile drivers in Ubuntu. This
chapter also teaches you important aspects of working with GRUB2, the
default Ubuntu boot loader. Finally, the chapter’s troubleshooting information
will help you understand what to do when something goes wrong with your
Linux kernel installation or compilation process. As disconcerting as these
problems can seem, this chapter shows you some easy fixes for many kernel
problems.
Almost all users find that a precompiled Ubuntu kernel suits their needs (and
there are several to choose from). At some point, you might need to recompile
the kernel to support a specific piece of hardware or add a new feature to the
operating system, although the Ubuntu kernel team works very hard to
backport or enable any feature possible (as a module), so it is highly unlikely
you will ever have a need to do this. The kernel team is also approachable and
will gladly discuss specific needs and features. Sometimes features are not
enabled just because no one has ever asked for or needed them. Occasionally,
things are not enabled because of a conflict with another feature. The Ubuntu
kernel team can help you discover what is going on in those cases (but don’t
abuse their kindness and availability; they already work quite hard and for
long hours).
Really, the main reason today that people compile their own kernel is because
they want to learn to be a kernel developer. If you have heard horror stories
about the difficulties of recompiling the Linux kernel, you can relax; this
chapter gives you all the information you need to understand how to
painlessly work through the process if you are interested in learning a new
skill. This is a complex and detail-oriented task, but it is within the grasp of
most technical users, even if it is completely unnecessary.
CAUTION
Building and using a custom kernel will make it difficult to get support for
your system. Although it is a learning experience to compile your own
kernel, you will not be allowed to file bugs in Ubuntu on a custom-built
kernel (if you do, they will be rejected without further explanation), and if
you have a commercial support contract with Ubuntu/Canonical, building
and using a custom kernel will void the contract.
The Linux Kernel
The Linux kernel is the management part of the operating system that many
people call Linux. Although many think of the entire distribution as Linux, the
only piece that can correctly be called Linux is the kernel. Ubuntu, like many