Skip to main content

Someone wanted to learn this too, so Grasp built them a personal learning path.

You can keep exploring this one or create your own

Coreboot First-Boot Diagnostics

Recommended resources

The freely available resources this lesson will direct you to.

Hello! Welcome to the final lesson of the "Hardware Surgery" module.

In our last session, you meticulously reassembled your ThinkPad x230, transforming it from a collection of components on your workbench back into a complete laptop. You followed a precise plan, ensuring every cable was routed and every connector seated. The physical operation is complete. Now, we face the moment of truth.

Introduction

This lesson is about the first boot. We will press the power button and see the results of our work. This is the culmination of replacing the proprietary BIOS with your own custom-built Coreboot firmware. We will cover what a successful boot looks like and, more importantly, how to systematically diagnose the situation if it doesn't go as planned.

This lesson directly addresses the learning outcome: Perform the initial boot test and diagnose common Coreboot first-boot issues (e.g., memory training hangs, no video output).

Think of this process not as a simple pass/fail test, but as the initial data-gathering phase of a new system. Just as you would analyze the output of a statistical model to check for errors or anomalies, we will analyze the laptop's behavior to verify its state and troubleshoot any problems.

  • Estimated time to complete: 60 minutes.
  • Brief recap: In the previous lesson, you completed the physical reassembly of the x230. You confirmed there were no leftover screws or loose parts, leaving you with a machine that is, externally, identical to how it started, but internally, fundamentally changed.

1. The Moment of Truth: The First Boot (15 minutes)

Before you press the power button, let's prepare the environment to ensure a clean test.

Preparation:

  1. Place the laptop on a stable, non-conductive surface.
  2. Connect the AC adapter to the laptop and a known-working power outlet. Do not rely on battery power for the very first boot.
  3. Do not plug in any USB devices (keyboards, mice, drives). We want to test the minimal viable system first.

The "Happy Path": What Success Looks Like

When you press the power button, you are looking for a specific sequence of events. This sequence confirms that the CPU is correctly executing the Coreboot code from the firmware chip you flashed.

  1. The power button LED and other status lights (like the Wi-Fi LED) should illuminate.
  2. You should hear the system fan spin up, possibly for a few seconds before settling down.
  3. The screen's backlight should turn on, even if nothing is displayed immediately.
  4. The Key Sign: After a few seconds, you should see a text-based splash screen. Since you selected SeaBIOS as your payload, it will say "SeaBIOS" at the top. This is your "Hello, World!" for this project. Seeing this screen means your Coreboot flash was successful.
  5. SeaBIOS will then proceed to initialize hardware. It will count up the system memory ("Memory training") and list the bootable devices it finds (e.g., Hard Disk, USB).
  6. Finally, it will attempt to boot from the first available device. If you still have an old OS on your SSD, it might try to load it. If the drive is blank, it will report "Booting from Hard Disk... Boot failed".

This entire process, from power-on to the SeaBIOS boot menu, might take a bit longer on the first boot than you're used to—up to 30-60 seconds is not unusual as Coreboot performs initial memory training.

To see this in action, watch the following clip. The presenter has just flashed his ThinkPad and is performing the first boot.

Focus on the segment from 19:29 to 20:15. Observe the power-on, the appearance of the SeaBIOS screen, and the subsequent attempt to boot from the hard disk. This is the outcome we are aiming for.

If your laptop follows this sequence, congratulations! You have successfully completed the most difficult part of this project. You can skip the next section and move on to the Conclusion.


2. Systematic Diagnosis: When Things Go Wrong (35 minutes)

If you don't see the SeaBIOS screen, do not be discouraged. This is a common part of the process, and troubleshooting it is a valuable learning experience. We will approach this like a scientific investigation: observe the symptoms, form a hypothesis, and test it by changing one variable at a time.

Scenario A: The "Nothing Happens" Scenario

Symptoms: You press the power button, and there are no signs of life. No lights, no fan spin, nothing.

This is the most alarming scenario, but it's often caused by simple issues.

  • Hypothesis 1: Power Connection Issue (High Probability).
    • Test: Is the AC adapter firmly plugged into the wall and the laptop? Is the wall outlet live? In the previous lesson, you reconnected the DC-in jack to the motherboard. Is it possible this connector is loose? This is a mechanical check related to reassembly.
  • Hypothesis 2: Bricked Firmware (Medium Probability).
    • Explanation: The flash on the main 8MB chip was corrupted or incomplete. The CPU has no valid instructions to execute when it powers on, so it does nothing. This is known as a "bricked" state.
    • Test: The only way to test this is to disassemble the laptop again and re-flash the chip with your bottom.rom backup. Before you do, verify the integrity of the file on your computer using a checksum (sha256sum).
  • Hypothesis 3: Hardware Short Circuit (Low Probability).
    • Explanation: A loose screw is rattling around and shorting a component on the motherboard, or a component was damaged by electrostatic discharge (ESD).
    • Test: This requires careful disassembly and visual inspection of the motherboard for any foreign objects or visible damage.

Scenario B: The "Power, But No Video" Scenario

Symptoms: The power lights turn on, the fan spins, but the screen remains black. This is the most common failure mode.

  • Hypothesis 1: Memory Training Failure (High Probability).
    • Explanation: Coreboot must "train" the system's memory controller to communicate correctly with the specific RAM modules you have installed. It tests various timings and configurations. If it cannot find a stable configuration, it will hang indefinitely at this stage, resulting in a black screen. The stock BIOS has very robust, proprietary training code for a wide variety of RAM; Coreboot's open-source equivalent can be more sensitive.
    • Tests (in order of ease):
      1. Be Patient: Leave the laptop on for a full two minutes. The first training sequence can be very slow.
      2. Reseat the RAM: Power off, remove the battery and AC adapter. Open the memory bay and firmly reseat both RAM modules. A slightly loose module is a very common cause.
      3. Isolate the Modules: Try booting with only one RAM stick in the first slot. If it fails, try the same stick in the second slot. Then, repeat the process with the other RAM stick. This helps identify if you have a single faulty module or a faulty slot.
      4. Try Different RAM: If you have other compatible DDR3 SODIMMs, try them. Some specific models of RAM are known to be incompatible with Coreboot's training algorithm.
  • Hypothesis 2: Bad Flash Configuration (Medium Probability).
    • Explanation: The Coreboot ROM you built is misconfigured. Perhaps an incorrect setting was chosen, or the image was corrupted during the build process. The firmware starts but hangs before it can initialize the video hardware.
    • Test: Re-flash the chips. If you are confident in your original .rom files, try flashing them again. If the problem persists, go back to the Coreboot build environment, run make clean, and re-compile the entire project from scratch. Then flash the newly generated ROM.
  • Hypothesis 3: Display Connector Issue (Medium Probability).
    • Explanation: The main LCD video cable is not properly seated on the motherboard. The system is actually booting, but it has no way to output video to the internal display.
    • Test: Connect an external monitor to the laptop's VGA or DisplayPort output. If an image appears on the external monitor, you have isolated the problem to the internal display connection. This would require partial disassembly to check the connector.

Scenario C: The "It Boots, But..." Scenario

Symptoms: The SeaBIOS screen appears, but a specific component doesn't work.

  • Symptom: Keyboard or Touchpad is unresponsive.
    • Hypothesis: Almost certainly a loose ribbon cable. These ZIF connectors are delicate.
    • Test: Disassemble the palm rest and keyboard and carefully reseat their ribbon cables, ensuring they are fully inserted and the locking latch is closed.
  • Symptom: SeaBIOS reports "Booting from Hard Disk... Boot failed".
    • Hypothesis: This is often expected behavior! It means Coreboot and SeaBIOS are working perfectly, but they can't find a bootable operating system on the drive.
    • Test: This is not a failure of the Coreboot flash. You will resolve this in the next module when you install Qubes OS. If you expected it to boot an existing OS, check that the drive is properly connected and that your Coreboot configuration includes the necessary storage drivers (e.g., AHCI for SATA drives).

3. The Debugger's Most Valuable Tool (10 minutes)

In all of this, your single most valuable asset is the backup of your original proprietary BIOS you made before you started.

Your Original BIOS backup is your "control group".

If you are completely stuck and suspect you may have damaged the hardware, you can always re-flash your original backup files (original_bottom.rom and original_top.rom).

  • If the machine boots with the original firmware, you know with 100% certainty that the hardware is fine. The problem lies exclusively within your Coreboot ROM or the flashing process.
  • If the machine still fails to boot even with the original firmware restored, then a hardware issue (e.g., a loose connector, damaged component) was likely introduced during the disassembly/reassembly process.

This ability to revert to a known-good state is the ultimate tool for isolating the problem variable. It separates software/firmware issues from hardware issues.


Conclusion

Today you faced the most anticipated and often the most challenging step of the hardware modification process. You performed the initial boot test, turning your reassembled x230 into a live system running your own firmware. Whether it worked on the first try or required a deep dive into diagnostics, you've now experienced the full engineering lifecycle of this process.

Key Takeaways:

  • The appearance of the SeaBIOS splash screen is the definitive sign of a successful Coreboot boot.
  • Most first-boot failures are not catastrophic. They are typically related to memory training, a bad flash, or a simple mechanical issue like a loose connector.
  • Diagnosing boot issues is a systematic process of elimination. Form a hypothesis, change only one variable at a time, and test the result.
  • Your original BIOS backup is your ultimate diagnostic tool, allowing you to confirm if a problem is hardware or firmware-related.

Next Lesson

With a successfully booting Coreboot system, you have laid a new, open, and auditable foundation for your secure machine. The low-level firmware is now under your control. The next logical step is to build upon this foundation with a secure operating system designed from the ground up for security.

In our next module, we will begin our journey with Qubes OS. The first lesson, "Define 'security by compartmentalization' and explain how virtualization can be used to enforce it," will introduce the core philosophy behind this unique operating system and set the stage for its installation.

Can't find a good explanation? Sign up and we'll make it for you

Sign up