Update your BIOS (ThinkPad)

Share your own howto's etc. Not for support questions!
Post Reply
User avatar
Posts: 1262
Joined: 2009-04-16 18:35
Location: Kristiansand, Norway
Has thanked: 7 times
Been thanked: 16 times

Update your BIOS (ThinkPad)

#1 Post by Hallvor »

Disclaimer: This procedure may brick your computer. Consider yourself warned.

1. Download the file
2. Make a USB-stick
3. Flash the BIOS

Why update the BIOS?

* New versions will usually fix bugs and sometimes add new features.

Why NOT update the BIOS?

* If it works, you may want to leave it alone because of a certain risk. Check the change log to see if it's actually an update you need.

I have tested this procedure successfully on the two computers in my signature, both running Bullseye. Newer ThinkPads have an easier procedure, like seen here: https://www.youtube.com/watch?v=KvC8bNJTvDU

Step 1: Download the BIOS update

The files are available from https://pcsupport.lenovo.com/us/en/

I found the correct file for my X240 here: https://pcsupport.lenovo.com/lt/lt/prod ... s/ds035950
Then download the iso, for instance

Code: Select all

$ wget https://download.lenovo.com/pccbbs/mobiles/giuj36us.iso
Test the checksum to see if it is the same as the one on the web page
MD5: a912761215af245e8e323b32701c69cb

Code: Select all

$ md5sum giuj36us.iso

It is a match, meaning that the files are identical.

Step 2: Flashing the USB stick

We'll use genisoimage and dd to make the USB-stick.

Install genisoimage if you haven't got it already

Code: Select all

# apt install genisoimage
Extract the image from the iso. (Change giuj36us.iso with the name of the iso you downloaded.)

Code: Select all

$ geteltorito bios-update.img giuj36us.iso
This will create the file bios-update.img. It is this file we'll use to flash the BIOS.

Insert the USB stick and type (as root)

Code: Select all

# blkid
You should now get a list of all the devices in your computer.

Look for something that is typical for a USB stick, for instance vfat /dev/sdb1: SEC_TYPE="msdos" UUID="5866-7CBB" BLOCK_SIZE="512" TYPE="vfat"

You can also type

Code: Select all

$ dmesg | more
[ 3448.601528] usb-storage 1-2:1.0: USB Mass Storage device detected
[ 3448.601983] scsi host3: usb-storage 1-2:1.0
[ 3448.602074] usbcore: registered new interface driver usb-storage
[ 3448.604737] usbcore: registered new interface driver uas
[ 3449.612784] scsi 3:0:0:0: Direct-Access VendorCo ProductCode 2.00 PQ: 0 ANSI: 4
[ 3449.613295] sd 3:0:0:0: Attached scsi generic sg1 type 0
[ 3449.613519] sd 3:0:0:0: [sdb] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)
[ 3449.613686] sd 3:0:0:0: [sdb] Write Protect is off
[ 3449.613692] sd 3:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 3449.613838] sd 3:0:0:0: [sdb] No Caching mode page found
[ 3449.613847] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[ 3449.640185] sdb: sdb1
[ 3449.641508] sd 3:0:0:0: [sdb] Attached SCSI removable disk
We can here see that /dev/sdb without a doubt is our device.

Typing the wrong device will overwrite ALL data on that device WITHOUT WARNING. Be very careful.

Finish the USB stick, for instance (replace /dev/sdb):

Code: Select all

# dd if=bios-update.img of=/dev/sdb bs=64K
When it finishes, reboot your computer.

Step 3: Flashing the BIOS

In order to flash your BIOS, you need to have AC power plugged in.

Press the F12 key when the computer is rebooting and select the USB stick as primary boot device.

If you can't make it boot, enter the BIOS with the F1 key. Navigate with your arrow keys to "Startup" and make sure that both UEFI and Legacy Boot are enabled with "Legacy first". You can also manually set the boot device priority there. Then save and exit with F10.

Then just follow the instructions on your screen.
Lenovo ThinkPad T440S, Intel Core i7-4600U CPU @ 2.10GHz, 8 GB RAM, 256 GB SSD, Debian Bullseye (KDE)
Lenovo ThinkPad X240, Intel Core i5-4300U CPU @ 2.90GHz, 8 GB RAM, 120 GB SSD, Debian Bullseye (KDE)

Post Reply