Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save StevenSeifried/5c67da0e6156a0716cd290956b349591 to your computer and use it in GitHub Desktop.
Save StevenSeifried/5c67da0e6156a0716cd290956b349591 to your computer and use it in GitHub Desktop.
How to upgrade (Lenovo) NVMe SSD firmware in Linux on Non-Lenovo devices

This guide is tested on a Fujitsu Futro S740 with an Kioxia/Toshiba KBG40ZMT128G NVMe SSD.

The Kioxia/Toshiba KBG40ZMT128G NVMe SSD is supported by fwupd, but unfortunately the firmware updates can only installed over fwupd on an Lenovo ThinkPad. The Fujitsu Futro S740 is obviously not a Lenovo ThinkPad :P But there is a, in my opinion, very easy workaround

First things first: BACKUP YOUR DATA! I assume no liability for data loss!

Tools needed

  • nvme-cli
  • wget
  • innoextract

Show current installed firmware version

nvme list

Output:

Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     123456789012         KBG40ZMT128G TOSHIBA MEMORY              1         128.04  GB / 128.04  GB    512   B +  0 B   0105AELA

Get latest firmware

Check here if a newer release of the .exe file is available

$ wget https://download.lenovo.com/pccbbs/mobiles/fwnva58.exe

Unpack it with innoextract

$ innoextract fwnva58.exe -d nvme-fw

The update can now be found in nvme-fw/codeGetExtractPath/KIOXIA/ as AELA0109.sig

Install the update

Download the firmware to the NVMe SSD (sudo isn't needed on Proxmox VE)

$ sudo nvme fw-download /dev/nvme0 --fw=nvme-fw/codeGetExtractPath/KIOXIA/AELA0109.sig

Commit the update

$ sudo nvme fw-commit /dev/nvme0 --slot=0 --action=2

If action=2 fails, use action=1 instead

Reboot

Check if the firmware upgrade was done:

nvme list

Output:

Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     123456789012         KBG40ZMT128G TOSHIBA MEMORY              1         128.04  GB / 128.04  GB    512   B +  0 B   0109AELA
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment