Actualizar libreboot en Thinkpad T480s

Como podéis imaginar, no todo es instalar herramientas nuevas si no que también hay que mantenerlas actualizas… Y es por ello que he publicado esta entrada. Quiero detallar los pasos que he hecho para actualizar libreboot en mi ordenador.

Requisitos previos

Preparación del ordenador

He clonado el repositorio git oficial de libreboot.

git clone https://codeberg.org/libreboot/lbmk

He instalado las dependencias para debian.

cd lbmk
git checkout 25.06
./mk dependencies debian

He compilado la herramienta flashprog.

./mk -b flashprog

Una vez finalizada la compilación, se generaron algunos archivos binarios en ./elf/flashprog/flashprog

Construye el firmware de la BIOS

Como hice al compilar libreboot por primera vez, compilé el controlador de la BIOS utilizando los siguientes parámetros

./mk -b coreboot t480s_vfsp_16mb

Copia de seguridad de la BIOS del ordenador

Para verificar que la copia de seguridad era correcta, creé tres..

Copia de seguridad 1

jeronimodiaz@thinkpad:~/git/lbmk$ sudo ./elf/flashprog/flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump.bin
[sudo] password for jeronimodiaz: 
flashprog p1.4-2-g564c93d on Linux 6.1.0-40-amd64 (x86_64)
flashprog is free software, get the source code at https://flashprog.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
coreboot table found at 0x7aa33000.
Found chipset "Intel Kaby Lake U w/ iHDCP2.2 Prem.".
Enabling flash write... Warning: Setting BIOS Control at 0xdc from 0x8b to 0x89 failed.
New value is 0x8b.
SPI Configuration is locked down.
OK.
Found Programmer flash chip "Opaque flash chip" (16384 kB, Programmer-specific) on internal.
Reading flash... done.

Copia de seguridad 2

jeronimodiaz@thinkpad:~/git/lbmk$ sudo ./elf/flashprog/flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump1.bin
flashprog p1.4-2-g564c93d on Linux 6.1.0-40-amd64 (x86_64)
flashprog is free software, get the source code at https://flashprog.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
coreboot table found at 0x7aa33000.
Found chipset "Intel Kaby Lake U w/ iHDCP2.2 Prem.".
Enabling flash write... Warning: Setting BIOS Control at 0xdc from 0x8b to 0x89 failed.
New value is 0x8b.
SPI Configuration is locked down.
OK.
Found Programmer flash chip "Opaque flash chip" (16384 kB, Programmer-specific) on internal.
Reading flash... done.

Copia de seguridad 3

jeronimodiaz@thinkpad:~/git/lbmk$ sudo ./elf/flashprog/flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump2.bin
flashprog p1.4-2-g564c93d on Linux 6.1.0-40-amd64 (x86_64)
flashprog is free software, get the source code at https://flashprog.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
coreboot table found at 0x7aa33000.
Found chipset "Intel Kaby Lake U w/ iHDCP2.2 Prem.".
Enabling flash write... Warning: Setting BIOS Control at 0xdc from 0x8b to 0x89 failed.
New value is 0x8b.
SPI Configuration is locked down.
OK.
Found Programmer flash chip "Opaque flash chip" (16384 kB, Programmer-specific) on internal.
Reading flash... done.

Una vez completadas las copias de seguridad, las comparé para comprobar que eran correctas.

jeronimodiaz@thinkpad:~/git/lbmk$ sha1sum dump.bin 
118e6381b370a3cabbcdf481ef64d3bdc8b2cec6  dump.bin
jeronimodiaz@thinkpad:~/git/lbmk$ sha1sum dump1.bin 
118e6381b370a3cabbcdf481ef64d3bdc8b2cec6  dump1.bin
jeronimodiaz@thinkpad:~/git/lbmk$ sha1sum dump2.bin 
118e6381b370a3cabbcdf481ef64d3bdc8b2cec6  dump2.bin

Grabar el firmware en la BIOS

Como mi portátil ya ejecutaba libreboot, no necesité utilizar ningún grabado externo y pude actualizar el controlador de la BIOS utilizando la herramienta flashprog directamente en el portátil.

jeronimodiaz@thinkpad:~/git/lbmk$ sudo ./elf/flashprog/flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w bin/t480s_vfsp_16mb/seabios_t480s_vfsp_16mb_libgfxinit_corebootfb.rom 
flashprog p1.4-2-g564c93d on Linux 6.1.0-40-amd64 (x86_64)
flashprog is free software, get the source code at https://flashprog.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
coreboot table found at 0x7aa33000.
Found chipset "Intel Kaby Lake U w/ iHDCP2.2 Prem.".
Enabling flash write... Warning: Setting BIOS Control at 0xdc from 0x8b to 0x89 failed.
New value is 0x8b.
SPI Configuration is locked down.
OK.
Found Programmer flash chip "Opaque flash chip" (16384 kB, Programmer-specific) on internal.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

En este punto, la BIOS del portátil está actualizada y ejecuta la versión 25.06.

Espero que esta entrada te haya resultado útil. Si tienes alguna pregunta, no dudes en compartirla en los comentarios. Estaré encantado de ayudarte.

¡Nos vemos en el próximo post!

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *