Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

How To Build A Modern Laptop using ODP

Modern laptops are far more than a CPU and memory strapped to a motherboard. They are intricate systems where firmware, controllers, and operating systems all work together to deliver reliable behavior under changing conditions: power, thermals, charging, battery health, and more.

In this guide we focus on the Embedded Controller (EC), because it is the orchestrator of many of these dynamics. The EC is where policies for battery charging, fan curves, and system load management come together. It is also where ODP’s modular component model shines: you can construct, swap, and simulate subsystems in a way that is transparent to the host.

Patina, ODP’s Rust-based UEFI implementation, is part of the bigger story. The practical hands-on documentation for building a ready-to-go boot firmware image is not part of this guide, but is available through the Patina resources elsewhere.

What are we setting out to do?

We will not be assembling a physical laptop on your desk. Instead, we will be exploring how a modern laptop could be constructed — piece by piece — using ODP components. Along the way you will:

  • Learn how to set up a firmware development environment.
  • Construct a virtual EC with battery, charger, and thermal subsystems.
  • Experiment with policies that react to simulated events.
  • Observe how these policies can be exercised and tested from the outside world.

What might this lead to?

The exercises here will give you working examples of individual components. They also serve as a foundation for something more ambitious: combining these pieces into a real integration, or perhaps even a virtual laptop. With the right emulation, you could connect an EC (real or simulated) to a host via ACPI, layer in Patina firmware, and boot into an operating system that recognizes and uses your virtualized subsystems.

That end-to-end journey is beyond the strict scope of this guide. But it’s the horizon we keep in mind as we explore each step.