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
Post a Comment