Compiling Libreboot with SeaBIOS - bibanon/Coreboot-ThinkPads GitHub Wiki
Note: This method is outdated, since Libreboot has integrated a modified SeaBIOS into it's latest builds, so a VGABIOS is no longer required.
Libreboot uses the GRUB2 payload in it's Coreboot image. However, SeaBIOS may be necessary to boot non-Linux operating systems.
-
Install the packages needed to build Coreboot.
sudo apt-get install libncurses-dev iasl libc6-dev-i386 svn
-
Grab a copy of the Libreboot source code.
-
In the
coreboot
folder, change the entirePayload
section in.config
to the text shown below. This will embed SeaBIOS into coreboot, rather than GRUB2.# # Payload # CONFIG_PAYLOAD_SEABIOS=y CONFIG_SEABIOS_STABLE=y CONFIG_PAYLOAD_FILE="$(obj)/seabios/out/bios.bin.elf" CONFIG_COMPRESSED_PAYLOAD_LZMA=y
-
Then, just run
make
to build thecoreboot.rom
file.make
-
Copy the compiled
coreboot.rom
file to theflashrom
source code folder.
- Trisquel Forums - X60 Flashing Guide is hard to understand
- Coreboot Wiki - Compiling Coreboot
- Coreboot Wiki - Fchmmr's Guide to compiling Coreboot for X60 with GRUB2 Payload and no nonfree binaries
This step is REQUIRED if you are flashing Coreboot for the first time. Otherwise, the ROM might overwrite some portions of the BIOS protected by bucts 1
.
-
Copy the
coreboot.rom
file inX60_source
to theflashrom
source code folder. -
Run the
dd
command below to shift the first 64K of data fromcoreboot.rom
.dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
-
Run the dd command below to display the first 64k of
coreboot.rom
.dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump
-
Verify that the complete range is filled with
ff
bytes before proceeding.
The output of the
dd
command above must EXACTLY match the text below. If not, the coreboot image needs to be rebuilt with the second-to-last 64kbyte block unused.
0000000 ffff ffff ffff ffff ffff ffff ffff ffff
*
0010000
-
Run the
dd
command below:dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc
- gmane.linux.bios Mailing List - LinuxBIOS on T60 - Peter Stuge's Method of installing Coreboot on the X60.