Update your UEFI Firmware under Linux can be a little challenge. This article provides information regarding the Thinkpad T450s and the recent UEFI version 1.21.
Important: I am not responsible for any hardware defects – using this information is your own risk.
What you need for this guide:
- Arch Linux USB-Stick (I am using this to boot the UEFI Shell. There are other opportunities to boot the UEFI Shell, which you can use as well) See the arch wiki how to set up a bootable USB-Stick (https://wiki.archlinux.org/index.php/USB_flash_installation_media)
- The new firmware as an .iso file (http://support.lenovo.com/de/de/downloads/ds102110)
- A Perl script named geteltorito which will extract the content from the above-mentioned .iso file (https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/)
After you downloaded everything necessary make at first the geteltorito script executable.
chmod +x geteltorito.pl
Then use geteltorito to extract the content from the .iso file.
geteltorito jbuj57wd.iso > bios.iso
Then mount the new generated bios.iso file.
kpartx -av bios.iso mount /dev/mapper/loop0p1 /mnt
Copy the necessary files from the mounted bios.iso in your UEFI partition.
cp /mnt/EFI/boot/Bootx64.efi /boot/FLASH/ cp /mnt/Flash/SHELLFLASH.EFI /boot/FLASH/ cp -r /mnt/Flash/JBET56WW/ /boot/FLASH/
After that your system is prepared to flash the actual firmware. Boot from your Arch Linux USB-Stick and choose the boot option “UEFI Shell x86_64 v2”.
Once you are in the UEFI Shell change to the appropriate EFI partition. In my case it was fs1.
fs1: cd FLASH Bootx64.efi
Wait until the Main Menu appears and select number 2 to update the system program.
Now your machine will flash the firmware. After a reboot you will also see a progress bar.
Wait until the flash process is finished.
Congratulations, your system should be up to date.