I’ve been relying on Gnome Software Center to let me know when new ThinkPad P1 firmware is available. Up until today, there is no new firmware available since the last update back in August 2019.

However, I stumbled on a post on reddit r/thinkpad, someone mentioned the BIOS 1.26 had been released for X1 Extreme/P1 Gen 2. This made me wonder if there was also new version of BIOS for the P1 Gen 1 that I have. Of course, there is a new BIOS firmware available: 1.24.

I already wrote a blog post on how to update firmware from Gnome Software Center. So in this blog post, I’m going share how the BIOS (EUFI and ECP) can also be updated from the command line. My system is ThinkPad P1 Gen 1 running Fedora 30/31.

First download the new BIOS from Drivers & Software support page. The file I downloaded has the name n2eul16w.zip. I would also recommend that you download the ReadMe text file (n2eur16w.txt) listing what’s included in the firmware release.

Next, unzip the n2eul16w.zip, which contains 2 files.

# unzip n2eul16w.zip 
Archive:  n2eul16w.zip
  inflating: N2EET42W.cab
  inflating: N2EHT28W.cab
  • N2EET42W.cab - 1.24-1.13 (UEFI BIOS)
  • N2EHT28W.cab - 1.13 ECP (Embedded Controller Program)

Install fwupd package, which provides fwupdmgr command utility.

The third step is to install the firmware itself. I decided to install the UEFI BIOS first:

# fwupdmgr install N2EET42W.cab 
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Installing on 20MDCTO1WW System Firmware…                        ]
Scheduling…              [***************************************]

An update requires a reboot to complete. Restart now? [Y|n]: Y

Allow the machine to reboot. Then, repeat the similar step for the ECP:

# fwupdmgr install N2EHT28W.cab
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Installing on UEFI Device Firmware…                              ]
Scheduling…              [***************************************]

An update requires a reboot to complete. Restart now? [Y|n] Y

After the last reboot, my laptop worked fine. However, I notice there was a small problem with font rendering on the screen. The font looks zigzag. So I thought this could be something to the BIOS firmware I just updated.

As a bonus, here is how firmware can be easily downgraded. (I hope you don’t have to do this.)

To downgrade the ECP from 1.13 to 1.10, I run the following commands:

# fwupdmgr downgrade
Choose a device:
0.      Cancel
1.      3da7f6459d666d9d080ae142d23cd4043d6de775 (ThinkPad P1 Thunderbolt Controller)
2.      71519311a643244a2eaf392fbf17c968ec135dd3 (20MDCTO1WW System Firmware)
3.      aca1c6cf5901b23b637fc8a1fdafeac85700799d (UEFI Device Firmware)
4.      6b3fcb33b92ea5cdd94954b276ad0b63ed14f9bb (UEFI Device Firmware)
Choose a release:
0.      Cancel
1.      0.1.11 (ThinkPad P1/X1 Extreme System Firmware Version 1.11

The computer will be restarted automatically after updating BIOS completely.

Do NOT turn off your computer or remove the AC adaptor while update is in progress.

This update also adds the following features:

 • Fixed an issue where system may enter shutdown after press power button of Thunderbolt 3 Dock Gen2/Thunderbolt 3 Workstation Dock to resume S3.
2.      0.1.10 (ThinkPad P1/X1 Extreme Embedded Controller Firmware
Downloading 0.1.11 for UEFI Device Firmware...
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Downgrading UEFI Device Firmware…                                ]
Scheduling…              [***************************************]

# systemctl reboot

For downgrading the UEFI BIOS from 1.24 to 1.23, first I needed to download the firmware (n2eul14w.zip) itself from the same Drivers & Software page. Unzip it, and run the following command:

# fwupdmgr -v --allow-older install N2EET41W.cab

Anyway, it turned out that the font issue I had was totally unrelated to this bios firmware update.

As of today, my P1 has the following firmware and OS:

  • UEFI BIOS: 1.24
  • ECP: 1.13
  • OS: Fedora Workstation 31 (beta)