As you may already know from one of my past posts, I’ve flashed coreboot
as the BIOS for my Lenovo ThinkPad T440p;
I found the process quite difficult and under-documented - at least for a noob like myself -
so I decided to write a post that could serve as a guide for other people.
Later on, I found myself having trouble updating coreboot. The error message led me to believe that the whole flashing process didn’t go as well as I thought it did, a notion that, as we will see later, may actually have been wrong.
Worse yet, I didn’t manage to flash coreboot again, due to a mismatch between the sizes of the two images.
All of a sudden I thought I was doomed to live with a faulty coreboot installation.
That was until I discovered Skulls
.
Skulls
is a project that offers pre-built coreboot images, making it easy to install an unlocked,
up-to-date and easy to use coreboot-based BIOS on your laptop.
Why “unlocked”? Because the software has no restrictions for connected hardware.
Why “easy to use”? Because Skulls comes with SeaBIOS
, an open-source implementation of an x86 BIOS,
which is essentially just a boot menu, no frills.
Why “up to date”? Because Skulls is frequently updated with a new image with the latest versions of all components. OK, this one was easy to guess.
Skulls also claims to have an easy installation process. And, I’ll be honest, they hit the nail on the head here. Just look at these docs for the T440p! Had I known that these docs existed I wouldn’t have written my own post.
I did the installation process, which unfortunately required some more wires and jumpers, but fortunately went smoothly, and now my T440p is sporting a brand new BIOS from Skulls.
And now to the question that everyone’s asking: are you able to update the BIOS now?
Well, it’s complicated…
The official docs state here that to do an update (i.e. flash internally) all you have to do is:
- boot Linux with the
iomem=relaxed
boot parameter (for example in/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
) - download the latest Skulls release tarball and unpack it or check for updates by running
./skulls.sh -b t440p -U
. - run
sudo ./skulls.sh -b t440p
and choose the image to flash.
Well, this didn’t work for me. In fact, the error message is suspiciously similar to the original error I had.
How to fix it then? Well, it turns out that I’m not the only one having this issue. There’s an issue on GitHub here about this.
The solution comes from this comment here from absolute legend cthulux, who in turn refers to flashrom FAQ.
Here’s the solution
As root, do:
modprobe -r lpc_ich
Or, if you want to do it on one line coupled with the normal Skulls update, as root again:
modprobe -r lpc_ich; sleep 4; ./skulls.sh -b t440p
According to cthulux there’s no need to boot Linux with the iomem=relaxed
boot parameter.
In my case, I had the iomem=relaxed
boot parameter set, so I cannot confirm if this is really not needed.
And that’s all! Problem solved.
Skulls (and coreboot) have been pretty nice to use. Although not simple, and maybe not the ideal solution for a BIOS power user who may wants to have a higher degree of control over their BIOS, for me - a noob who doesn’t need much beyond selecting which drive to boot from, it has been okay.
The only issue I’ve had (and this may not be due to Skulls) is that sometimes booting from USB doesn’t work.
However, after much tinkering, I think I’ve found a workaround: when flashing your ISO to USB, make sure to flash using DD Image (disk image) mode.
For instance, if you’re using Rufus, you should set it something like this:

That’s all! Hope this helps!