02-04-2018 06:30 AM
Upgrading/Downgrading nvme disk firmware on linux
ATTENTION!!! MAKE BACKUPS! DO IT AT YOUR OWN RISK!
1. Install nvme-cli package https://github.com/linux-nvme/nvme-cli#distro-support
2. Invoke following commands:
Assuming your disk is at /dev/nvme0:
sudo nvme fw-download /dev/nvme0 --fw=/path/to/firmware/file.sig
For nvme-cli before 1.5:
sudo nvme fw-activate /dev/nvme0 --slot=0 --action=2
For nvme-cli 1.5 and later:
sudo nvme fw-commit /dev/nvme0 --slot=0 --action=2
4. Check firmware version:
sudo nvme id-ctrl /dev/nvme0
For more info look at nvme-cli manpags and docs:
03-27-2018 09:35 PM
This is all interesting, and promising, but a little worrying! More particularly, the files I've managed to download do not end with .sig. For they are these:
These are the files in the 'Lenovo' folder and I do think I have a (512GB) Lenovo SSD and not a Toshiba, Intel or Samsung one. Only files in the Toshiba folder have a 'sig' extension. Also, I'd like to find out (1) the version of the firmware I have and (2) the version of the firmware I'll be getting (!).
04-08-2018 05:52 AM - edited 04-08-2018 05:55 AM
Yes, .sig files are for Toshiba, for Lenovo there are .bin files which you posted.
You can check current firmware version with:
sudo nvme id-ctrl /dev/nvme0 | grep fr
To see what firmware version is included in drivers downloaded from Lenovo you may look into Readme.txt
04-09-2018 03:19 PM - edited 04-09-2018 03:22 PM
Thank you. That's helpful.
EDIT: I should perhaps add that in the meantime I had used a Windows Pre-installation Environment to try to update the firmware; I discovered - and has just now verified through the method you gave - that I had the most recent firmware anyway.
11-29-2018 11:22 AM - edited 11-29-2018 11:32 AM
Will this method work on say Manjaro on any machine? I have a DIY PC using an Asrock AB350 Pro4 (Ryzen 5 2600X) and the Linux OS is running on a Samsung SM961 NVMe 256GB SSD. It was pulled from a early 2016 Lenovo, Dell or HP laptop, exact model unknown. An entire group of people have been trying to figure this out for two years now, how to update their firmware on an Samsung OEM ssd like this.
Is this cli method above, machine brand/model agnostic? This SSD has had many new firmware's including this one just last week.