Introduction

The Libreboot documentation can be confusing to navigate and understand.

This is a guide on how to internally flash Libreboot, on GM45 ThinkPads which have already had their BIOS flashed externally.

Quick setup

  • Install flashrom and ich9gen (found here: ich9utils1)
    • ich9utils must be compiled, using make and gcc
# Determine the MAC address of the ethernet interface
ip link
# Enter the MAC address
ich9gen --macaddress 00:1f:16:80:80:80
# Note the size of the flash chip, and write the appropriate .bin
# 4m, 8m or 16m
flashrom -p internal
# Write the .bin to the ROM
dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=12k count=1 conv=notrunc
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom
  • Dump the flashed ROM and compare the hashes
# Make multiple dumps from the chip
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump1.bin
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump2.bin
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump3.bin
# Compare the hashes against the ROM, ensuring that they are all the same
sha1sum dump*.bin libreboot.rom

And done.


  1. flashrom may be available from distribution repositories (due to its role in upstream coreboot), but ich9utils was developed exclusively for GM45 machines, and is therefore available from the Libreboot project. ↩︎

  2. Be aware of the differences between the traditional eth0 interface, and Predictable Network Interface Names in systemd↩︎