Lenovo ThinkPad P1 UEFI BIOS Update on Linux

Lenovo ThinkPad P1 UEFI BIOS Update on Linux

In the past BIOS updates often required Windows or booting from a stick. Thankfully with the Lenovo ThinkPad P1 and the almost identical ThinkPad X1 Extreme, you can update the BIOS directly from Linux.

With Lenovo supporting the Linux Vendor Firmware Service, updating ThinkPads has become much easier. More and more devices, not only ThinkPads start supporting LVFS, check out the homepage for a list of supported devices.

The two mayor Linux window managers, Gnome and KDE also support graphical firmware updates. Though in this tutorial we go the manual command line way.

Preparing the BIOS update

For updating I use Gentoo Linux, but any recent Linux distribution should work. In Ubuntu the fwupdmgr is already included, for other distributions like Debian or RHEL / CentOS 7 you need to install it manually or use fwupdate.

After install fwupd, you first should check if your device is recognized properly:

# fwupdmgr get-devices
20MD000DGE System Firmware
  Version:              0.1.18

fwupdmgr get-devices lists the devices which can be updated, if nothing shows up try calling fwupdmgr refresh first, which refreshs the meta data from the LVFS server.

As you can see above, the ThinkPad P1's BIOS version is 0.1.18. At the time of this post 0.1.19 was out, so let's go ahead and update the BIOS.

Install the BIOS update

Download the Linux BIOS Update from the Lenovo support website and extract the .cab file.

# fwupdmgr install n2eet37w.cab 

This takes just a couple of seconds, it extracts the ThinkPad Bios update to your EFI system partition and creates an EFI boot manager entry. Now reboot the system.

During the notebook boot the BIOS should be updated, which is going to take some minutes and the ThinkPad P1 is going to beep meanwhile. Verify the BIOS has been updated, by either entering the setup or by calling fwupdmgr get-devices again.