Installing Libreboot
Contents
This page will teach you how to install Libreboot, on any of the supported laptop, desktop and server motherboards.
Precautions
Please make sure you have backed up the current flash and inserted vendor ROM files (if applicable) before flashing. Otherwise, you risk bricking your machine.
Disabling /dev/mem
protection
You should follow the instructions to disable /dev/mem
protection.
Backing up the current flash
You should do this whenever you are overwriting the flash, including when you update between Libreboot releases.
You just need to use -r
instead of -w
in flashprog.
Inserting vendor ROM files
If you are using a release tarball, please read the instructions to insert vendor ROM files.
If you are building from source, the build system should insert them automatically for you.
Updating EC firmware
It is a good idea to attempt to update the EC firmware before installing.
Intel GbE MAC addresses
On all IFD-bsed Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is used. If the board has Intel gigabit ethernet, the MAC address is included in flash, and must be changed prior to installation.
You must use nvmutil to change the MAC address to modify the ROM image before flashing it.
Prepare to flash externally
Some boards require external flashing. Regardless, you are strongly advised to have an external flashing setup, and make sure it works, before attempting internal flashing. Refer to the SPI guide to learn about external flashing.
Which payloads are supported by Libreboot?
With x86 machines, you can use the SeaBIOS, GNU GRUB, or U-Boot payloads. On ARM systems, you can use the U-Boot payload (coreboot still initialises hardware).
Which boards are supported by Libreboot?
Games consoles
- Sony Playstation (PS1/PSX)
Servers (AMD, x86)
Desktops (AMD/Intel, x86)
- Acer G43T-AM3
- Apple iMac 5,2
- ASUS KCMA-D8 motherboard
- Dell OptiPlex 3050 Micro
- Dell OptiPlex 7010/9010 SFF (non-MT)
- Dell OptiPlex 7010 MT (known to work, using the T1650 ROM, but more research is needed)
- Dell OptiPlex 7020/9020 MT and SFF
Dell OptiPlex XE2 MT/SFF also known to work - Dell OptiPlex 9010 MT is also known to work. No GPIO changes, so it should be safe to flash
- Dell OptiPlex 780 variants e.g. MT, USFF
- Dell Precision T1700 (use the same ROM as 9020 MT, but it won’t have ECC support)
- Dell Precision T1650
- Gigabyte GA-G41M-ES2L motherboard
- HP Elite 8200 SFF/MT (HP 6200 Pro Business probably works too)
- HP Elite 8300 USDT
- Intel D510MO and D410PT motherboards
- Intel D945GCLF
Laptops (Intel, x86)
- Apple MacBook1,1 and MacBook2,1
- Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel GPU
- Dell Latitude E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330, E6220 (Intel GPU variants only)
- HP EliteBook 2170p
- HP EliteBook 2560p
- HP EliteBook 2570p
- HP EliteBook 820 G2
- HP EliteBook 8460p
- HP EliteBook 8470p
- HP EliteBook 8560w
- HP EliteBook Folio 9470m
- Lenovo ThinkPad R400
- Lenovo ThinkPad R500
- Lenovo ThinkPad T400 / T400S
- Lenovo ThinkPad T480 and T480S
- Lenovo Thinkpad T420 / T420S / T520
- Lenovo ThinkPad T430 (not T430S)
- Lenovo ThinkPad T500 / W500 (May work for R500 too)
- Lenovo ThinkPad T530
- Lenovo ThinkPad X60 (internal flashing available)
- Lenovo ThinkPad X60 Tablet (internal flashing available)
- Lenovo ThinkPad X200 / X200S / X200 Tablet
- Lenovo Thinkpad X220 / X220 Tablet
- Lenovo ThinkPad T60 (internal flashing available)
- Lenovo Thinkpad T430 / T530 / W530 / X230 / X230 Tablet (IvyBridge ThinkPad internal flashing available but not recommended)
- Lenovo ThinkPad W540/W541
- Lenovo ThinkPad T440p
Laptops (ARM, with U-Boot payload)
Emulation
ROM image file names
They are named like payload_board_inittype_displaytype_keymap.rom
.
The payload
option can be SeaBIOS, SeaGRUB or U-Boot. If GRUB is available on
a given board, in flash, both SeaBIOS and SeaGRUB are provided; SeaBIOS images
still have GRUB available via the SeaBIOS menu, and SeaGRUB means that SeaBIOS
automatically loads GRUB from flash first (but you can still choose something
else, by pressing ESC in SeaBIOS when prompted).
Inittype can be libgfxinit
, vgarom
or normal
. The libgfxinit
option
means coreboot provides native video initialisation, for onboard graphics. The
vgarom
option means coreboot executes a VGA option ROM for video
initialisation. The normal
option means coreboot provides no video
initialisation, via VGA ROM or native code.
Displaytype can be txtmode
or corebootfb
— if inittype is normal
,
this is ignored because txtmode
is assumed.
If payload
is seabios
instead of seagrub
, no keymaps are inserted into
flash and only US QWERTY is assumed, otherwise the keymap refers to what is
used in GRUB on seagrub
payload setups.
If you use a libgfxinit image on a desktop machine, you can still insert a graphics card and it’ll work just fine; its own VGA option ROM will be executed instead, if the primary payload is SeaBIOS, whether that be pure SeaBIOS or a SeaGRUB setup.
Updating Libreboot
In general, if Libreboot is already running, you can refer to the generic internal flashing instructions. Most boards require external flashing when flashing for the first time and are documented in their own respective pages.
Notwithstanding the above, some boards such as SureStart on HP EliteBook 820 G2 require special steps, even if Libreboot is already running. This is also the case if you locked down the flash.
Therefore, before following generic guides, make sure to check first whether your board has special instructions.
Removed boards
These boards were in Libreboot, but have been removed with the intention of re-adding them at a later date. They were removed due to issues. List:
- Acer Chromebook 13 (CB5-311, C810) (nyan-big)
- ASUS Chromebit CS10 (veyron-mickey)
- ASUS Chromebook C201PA (veyron-speedy)
- ASUS Chromebook Flip C100PA (veyron-minnie)
- Hisense Chromebook C11 and more (veyron-jerry)
- HP Chromebook 11 G1 (daisy-spring)
- HP Chromebook 14 G3 (nyan-blaze)
- Samsung Chromebook 2 11" (peach-pit)
- Samsung Chromebook 2 13" (peach-pi)
- Samsung Chromebook XE303 (daisy-snow)
- Lenovo ThinkPad X301 (still in lbmk, but with
release="n"
)