↓ Skip to main content
  1. Posts/

Firmware (BIOS and UEFI)

·3 mins· loading · loading ·
ebeem
Author
ebeem
FOSS Enthusiast & Indie Game Developer

Introduction

In this series, I will try to explain how your system (specifically Linux) is booted from the moment you press that power button until you see your desktop environment. I will also highlight the different software available for each task/step and what customization you can apply.

The firmware is the first software to be loaded once you power on your machine, this software exists in your motherboard itself and it usually is proprietary and hard to replace as the motherboard manufacturers don't share the internals of their chips.

Objective

The firmware has two objectives: to diagnose hardware and to locate and run the bootloader.

Power-On Self Test (POST)

The firmware performs the Power-On Self Test (POST) which tests and initializes hardware components like CPU and RAM, it will report a failure if something goes wrong in this step by displaying an error message, digit codes, or producing beeping sounds.

Running the Bootloader

The firmware will have to locate and run another specialized program called the bootloader. This other program will take care of launching the operating system.

BIOS vs UEFI

You may hear about these terms quite often in firmware. Computers used the Basic Input/Output System (BIOS) in the early days. Today, almost all modern computers use the Unified Unified Extensible Firmware Interface (UEFI). The advantages you will get from using UEFI include:

  • Unlimited drive sizes, BIOS is limited to 2.2 TB
  • Modern interface with high resolution and mouse support, BIOS is keyboard-only and has a retro blue text-based interface.
  • Fast booting as it initializes components in parallel, BIOS does it one component at a time.

Upgrading Firmware

Since the firmware is actually a piece of software, regular updates are released for both BIOS and UEFI. These updates usually are to patch security vulnerabilities, fix bugs, or add hardware support. This process is usually called flashing the BIOS and the instructions to perform it varies based on the motherboard.

Warning: Flashing your firmware carries a small amount of risk and it may "brick" your motherboard if you flash incompatible firmware or power goes down during the process. Always ensure your system has stable power and you have identified the correct firmware supply before updating.

Customizing Firmware

Many UEFI interfaces nowadays offer built-in customization options such as boot order, hardware virtualization, and interface theme. However, to really customize the firmware, you must use an open-source one which is usually not possible.

Some projects like Coreboot and Libreboot try to replace the proprietary, closed-source firmware shipped by motherboard manufacturers. Unfortunately, installing these alternatives requires hardware compatibility and technical expertise. They also may "brick" your motherboard if not done right.

The benefits obtained from installing these custom firmware include: much faster boot times because they strip out hidden unwanted code and also give users full transparent control.