Chapter 9. Setting Up the Bootloader

Although a bootloader runs for a very short time during the system’s startup and is mainly responsible for loading the kernel, it is nevertheless a very important system component. Almost any system running a Linux kernel needs a bootloader, but embedded systems typically have further constraints that make the process somewhat different from that used by a typical desktop Linux development system. In this chapter, we will examine some of these differences in detail, and explain how to set up and configure some examples, including a server providing dynamic host configuration protocol (DHCP) and NFS services for network booting. By the end of this chapter, you will have installed all of the components discussed earlier, configured your target with an appropriate bootloader, and will be finally ready to boot your embedded Linux system.

A bootloader is responsible for loading an operating system kernel and its supporting infrastructure into memory, and beginning the kernel’s execution. Typical tasks performed by bootloaders include kernel selection (your desktop Linux system likely offers an optional list of kernels to choose from if you press a key early during boot) and loading an initial RAM-based filesystem (whether initrd, initramfs, or something different). The RAM-based filesystem contains enough of an environment to mount the root filesystem and begin the normal bootup process (starting system daemons and the like).

Most regular desktop and ...

Get Building Embedded Linux Systems, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.