Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230

 

 

 

Update your BIOS (ThinkPad)

Share your HowTo, Documentation, Tips and Tricks. Not for support questions!.
Post Reply
Message
Author
User avatar
Hallvor
Global Moderator
Global Moderator
Posts: 2020
Joined: 2009-04-16 18:35
Location: Kristiansand, Norway
Has thanked: 138 times
Been thanked: 204 times

Update your BIOS (ThinkPad)

#1 Post by Hallvor »

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

Our dear oswaldkelso has reported that the T520 (and possibly other models) have a BIOS hardware whitelist. Flashing an official BIOS on a system where a hardware whitelist has been removed, may reintroduce it and disable previously working hardware.

viewtopic.php?p=677247#p677247

Steps:
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

a912761215af245e8e323b32701c69cb
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 -o 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.

Changes:
14.10.22: Added -o parameter to geteltorito-command.
16.10.22: Added info about hardware whitelist.
[HowTo] Install and configure Debian bookworm
Debian 12 | KDE Plasma | ThinkPad T440s | 4 × Intel® Core™ i7-4600U CPU @ 2.10GHz | 12 GiB RAM | Mesa Intel® HD Graphics 4400 | 1 TB SSD

User avatar
donald
Debian Developer, Site Admin
Debian Developer, Site Admin
Posts: 1041
Joined: 2021-03-30 20:08
Has thanked: 185 times
Been thanked: 240 times

Re: Update your BIOS (ThinkPad)

#2 Post by donald »

I was going to do this via .cab files but could not get fwupdate to work.

I followed this guide and it worked direct and well.

My addendums:
geteltorito needs the '-o' flag before the filename of bios-update.img so that it knows to write the data to a file:

Code: Select all

geteltorito -o bios-update.img $file.iso
When you are in the BIOS check the version number, you should also take this time to change your boot order to the USB stick so that the laptop boots from it 1st.

I used Version 31.26 on Model 20l5000UUS.

When the program starts it gives you these options:
Select a number:
Option 1) Read this first ...
Option 2) Update system program (install the update)
Option 3) Update model number (Updates the model number of your system or clears the current value of your model number to manufacturing value)

F3=Exit
  • Read #1 Carefully. You are already committed so why not read more? :)
  • Engage #2, the laptop will give you several warnings and insist that you leave the A/C power adapter in during the upgrade.
At one point the laptop will reboot to complete the update, be sure to leave the media attached.

After a few moments you will get a black screen with a progress bar, mine took about 2 minutes as I moved from an 11/xx/2018 BIOS to my now current 07/xx/2022 BIOS.

The system then reboots again. I left the drive in so that I could see if it changed the model or any other information (Option 3 above). No changes were made there. I then restarted and removed the media. On the next reboot I went into the BIOS to confirm the update and it was there nice and shiny. I also restored my older boot order.

At this point I booted into Debian and at the command prompt ran another check using dmidecode.

Code: Select all

$ sudo /usr/sbin/dmidecode | less
You are looking for the BIOS Information section:

Code: Select all

Handle 0x000B, DMI type 0, 24 bytes
BIOS Information
        Vendor: LENOVO
        Version: N24ET70P (1.45 )
        Release Date: 07/22/2022
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 16 MB
        Characteristics:
                PCI is supported
                PNP is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
...
Looks great!

@Hallvor Thank you for the guide!

hallvor if you need to re-edit/change/this post you have my full permission :)
-donald
Typo perfectionish.


"The advice given above is all good, and just because a new message has appeared it does not mean that a problem has arisen, just that a new gremlin hiding in the hardware has been exposed." - FreewheelinFrank

User avatar
Hallvor
Global Moderator
Global Moderator
Posts: 2020
Joined: 2009-04-16 18:35
Location: Kristiansand, Norway
Has thanked: 138 times
Been thanked: 204 times

Re: Update your BIOS (ThinkPad)

#3 Post by Hallvor »

Thank you for helping make the how-to better. I am glad it worked well!

I added the -o parameter as you suggested.
[HowTo] Install and configure Debian bookworm
Debian 12 | KDE Plasma | ThinkPad T440s | 4 × Intel® Core™ i7-4600U CPU @ 2.10GHz | 12 GiB RAM | Mesa Intel® HD Graphics 4400 | 1 TB SSD

User avatar
cds60601
df -h | participant
df -h | participant
Posts: 698
Joined: 2017-11-25 05:58
Location: Florida
Has thanked: 129 times
Been thanked: 59 times

Re: Update your BIOS (ThinkPad)

#4 Post by cds60601 »

Nice! I'm in the camp of Why Not. But should I get the notion to do so, this will come in handy as I have 4 TinkerPads
Supercalifragilisticexpialidocious

arochester
Emeritus
Emeritus
Posts: 2435
Joined: 2010-12-07 19:55
Has thanked: 14 times
Been thanked: 54 times

Re: Update your BIOS (ThinkPad)

#5 Post by arochester »

LOL!

I bought an old ThinkPad that was 2 BIOS updates behind

I wanted to easily update it. I've lost count of the times I used a Linux LiveCD to save someone's Windows. I never contemplated using a Windows LiveCD - in this case Hirens Boot CD PE.

I came across https://easylinuxtipsproject.blogspot.c ... t.html#ID9 that says:
Applying a BIOS update on a Lenovo laptop without Windows on it (tested, but draft)
9. It's possible to update the BIOS on a Lenovo laptop without Windows on it, even though the BIOS can only be updated by means of a Windows installer.

The solution isn't too difficult, fortunately: simply download the iso of the legal and free Hiren's Boot CD PE, which is based on Windows 10 PE. Create a bootable medium with it and boot from that medium.

Then within the live session, launch Windows Explorer and create a folder called Lenovo (or whatever) on the root of the live session of Hiren's Boot CD PE.

Next, download the BIOS update file from the support section of the Lenovo website, execute it and let it unpack its contents in that specially created folder called Lenovo (don't let it attempt to actually apply the update: it'll probably fail, because the root "drive" of the live session is called X and not C).

Finally, using Windows Explorer, launch a terminal (DOS box, command line) in the folder called Lenovo (or whatever) that contains the unpacked BIOS update files, and execute the file called "install.bat" from within that terminal by typing install.bat and pressing Enter. That's all.
I don't think I even got as far as unpacking into the Folder. Just downloaded, ran as administrator, unpacked and ran.

Worked!

Post Reply