Skip to main content

Coreboot on x230 - How to change the Skulls bootspash image

I assume that skulls is already installed on your x230 and you are happy with it :) however you would like to change the bootsplash image..

It seems to be simple... however it can be "tricky".. or at least it was for me.. 

That's because the "usable" image created by the skulls script is the "top" one only.

the coreboot instructions to flash with a layout file with didn't work for me

0x00000000:0x007fffff ifdmegbe
0x00800000:0x00bfffff bios

I get this error:

Proceeding anyway because user forced us to.
Found chipset "Intel QM77".
Enabling flash write... Warning: SPI Configuration Lockdown activated.
Enabling hardware sequencing due to multiple flash chips detected.
OK.
Found Programmer flash chip "Opaque flash chip" (12288 kB, Programmer-specific) mapped at physical address 0x0000000000000000.
Error: Image size (4194304 B) doesn't match the flash chip's size (12582912 B)!

So I thought it could be a good idea to flash from internal the full image at 12 mb.

Using the Skulls scripts to reproduce the image, I found out that only the 4mb top rom was properly generated, as the full 12mb in /build/ folder had no valid parameters, maybe has the intel descriptor missing.
So if you flash that one you will brick! To be sure of that, I have flashed and then bricked.. ;)

So I thought about this workaround.

To proceed it is necessary to get the full image of your skulls installed. The command that worked for me was:

sudo flashrom -p internal:laptop=force_I_want_a_brick -r skulls.rom

Now you will be able to see on your /home the skulls.rom 12mb image.

From this image what we need is the bottom rom so we can take with:

dd if=skulls.rom of=skullsbottom.rom bs=1M count=8

and your skullsbottom.rom 8 mb will be created on your /home folder

Now we need to clone the skulls repo on github

git clone https://github.com/merge/skulls
    
cd skulls/x230

We are now in the skulls directory, however before to proceed we need to get the necessary software, so install docker

sudo apt install docker.io

Now replace the bootsplash in /skulls/x230 with a different one. I have created my new JPEG with Gimp using

    "Progressive" turned off, and
    "4:2:0 (chroma quartered)" Subsampling

If all it is done, it is now time to build, so type:

 ./build.sh

and we need to choose "nonfree" configuration.. otherwise we won't get any bootspash

you will see that the scripts will generate a 4mb image in the /skulls folder, so now rename it in skullstop.rom and move it into your /home

At this point we will have a "bottom" rom previously retrieved and a brand new "top" rom and we need to merge them in a complete image of 12 mb

cat skullsbottom.rom skullstop.rom > X230skulls.rom

We are now ready to flash the 12 mb image from internal:

sudo flashrom -p internal:laptop=force_I_want_a_brick -w X230skulls.rom --ifd --image bios -V

or

sudo flashrom -p internal:laptop=force_I_want_a_brick -w X230skulls.rom -V

Done! now your coreboot skulls has a new bootsplash image!

you can check and test that it is "really" the same skulls on going on /skulls/x230 and running

./x230_skulls.sh -U

you will get the following msg "You are using the latest version of Skulls for the X230"

Enjoy

Special thanks to skulls and to coreboot. For futher info visit
https://www.coreboot.org/Board:lenovo/x230
https://github.com/merge/skulls/blob/master/x230/README.md

As usual a simple video showing some details of the process described above



Comments

Popular posts from this blog

Skulls scripts - how to make the seabios_free version bootsplash showing and adding secondary payloads

I was playing with the skulls scripts  for the seabios_free to rebuild the coreboot image for the thinkpad x230, considering that, as reported on their github, it: "includes the VGA BIOS SeaVGABIOS which is free software. While technically more interesting, visually this is currently not as beautiful: The bootspash image is not shown ." The solution that I have fund is not perfect as the supported resolution by libgfxinit is limited to 1024x768, so the image is shrunk, however it does show and it works fine for me. I have replied then on this thread /issues/59 What we have to change to fix it is not the .config file present in the /x230 folder but the free-defconfig-8053595370 file to set the correct resolution to the libgfxinit adding the following: CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=1024 CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=768 Once done we still need to add the bootsplash image as per the seabios coreboot instructions  However I think that adding on the script someth...

Coreboot with Seabios and VGA on ThinkPad T400

I have a beautiful t400 running libreboot and still working amazing, however... I needed to boot windows 10 on it ;( I come across some guides on internet to recompile coreboot for this or similar models however the instructions didn't work if you aim to run windows on it.  Obviously re-flashing the stock bios is not a "reasonable" option for me.. and I couldn't find any alternative "ready to go".. so I decided to recompile coreboot and making it capable to boot windows 10 on my t400. From this personal small "project" I got the benefit to be able to boot any other linux distro and any bsd (I have tried freebsd only so far) without any complicated settings to add on the grub configuration. Also, it doesn't include any Intel ME (the same as libreboot) which is a backdoor (https://www.theregister.com/2017/11/20/intel_flags_firmware_flaws/) and I feel like that coreboot and seabios are immune to the recent grub security issues (not sure if they ca...