Building Embedded Linux Systems, 2nd Edition
by Philippe Gerum, Karim Yaghmour, Jon Masters, Gilad Ben-Yossef
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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access