Samsung nvme firmware update: How?

Copy the firmware iso to a usb drive.
Boot up your EnOS’ Live usb. Plug in the other usb where you have the firmware iso.
In a terminal:

  1. sudo su
  2. mkdir /mnt/iso
  3. cd into the directory where you have the firmware iso
    mount -o loop Samsung_SSD_970_EVO_Plus_4B2QEXM7.iso /mnt/iso/
  4. mkdir /tmp/fwupdate
  5. cd /tmp/fwupdate
  6. gzip -dc /mnt/iso/initrd | cpio -idv --no-absolute-filenames
    (I hade to install cpio)
  7. cd root/fumagician/
  8. ./fumagician
3 Likes

This is what I did, but it did not work for me. Does not find any updatable drive-

Strange.
I’ll give it a go later when I will have backed up my disk.
Perhaps later this evening.
Let’s see what will happen saying Y at the last step when I stopped before.

I did not use the Enos live iso though. I used my external EndeavourOS drive with a full, up-to-date EndeavourOS installation. I will try with the live enos iso next.

It shouldn’t make any difference I would think.
Did you make sure that the drive was unmounted?

Yes, of course. No internal drive is automounted in any of these USB boot scenarios.

Exactly. I tried it and it didnt make a difference.

That’s odd! It seemed to find my disk in those initial steps.
I’ll try later when I have backed up my disk and report in case of success or failure.

Tried it with the enos live iso and followed your tutorial:
2022-10-28-113634_1000x538_scrot

The drive wasn’t mounted. I give up.

I clearly have a 970 evo plus though.

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 970 EVO Plus 500GB
Serial Number:                      S4EVNF0MA26399P
Firmware Version:                   2B2QEXM7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 500.107.862.016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      4
NVMe Version:                       1.3
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500.107.862.016 [500 GB]
Namespace 1 Utilization:            33.455.190.016 [33,4 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 5a91b1af4c
Local Time is:                      Fri Oct 28 13:53:11 2022 CEST
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Log Page Attributes (0x03):         S/H_per_NS Cmd_Eff_Lg
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     85 Celsius
Critical Comp. Temp. Threshold:     85 Celsius
1 Like

I took the leap of faith and ran the script again. This time after having backed up my disk for “better be safe than sorry”.

Screenshot_2022-10-28_12-25-15

After a couple of seconds, without any further output, I was asked to press any key to exit.
I wasn’t sure if it has successfully updated the firmware.
It looks as if it did:

# nvme --list
 
Node                  Generic               SN                   Model                                    Namespace Usage                      Format           FW Rev  
--------------------- --------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1          /dev/ng0n1            xxxxx.....          Samsung SSD 970 EVO Plus 1TB             1         181.73  GB /   1.00  TB    512   B +  0 B   4B2QEXM7

Rebooting back into the system: the disk, all the partitions and data in place; no data loss or anything.

1 Like

Is there perhaps a problem with the skript, when the system has more (>2) 970 evo plus drives?

I only have one Samsung drive so doesn’t look like it.

If the script will not fail to detect the drives as it seems to have done for @mbod and @anon13373109, it should list all the disks to which the firmware update is applicable. At least, to me, this seems to be a reasonable thing to do.

Then if it would update the firmware for them all at once, in turn or you would be given the option to choose which one, I couldn’t tell since I have only one disk in this laptop.

Only thing I can think of is that I am on the 2B2xxxxx firware trying to upgrade to 4B2xxxxx while you already had 3B2xxxxx firmware .

in +/- 5 hours I can try it on my system :wink:

Yes. I noticed that too from @mbod’s nvme --list output. He has 2B2QEXM7. And I already had 3B2QEXM7. However, I had never updated the firmware before…

Why can’t you just download a Windows ISO and install it to an external drive?

Wait…so it’s possible to boot windows from an external drive with Grub?

Even though my data was intact after the firmware update, I think the most cautious course of action is to take heed of the warning when running the script and backup your most valuable data before going through with it it all.

I have no valuable data on it. If something goes from, I only have to re-download a bunch of games.

My importang Stuff is on my NAS. But thanks for advice :slight_smile:

1 Like

If I remember it correctly, not all editions of Windows support booting from an external drive.
I think only the Enterprise and the Education editions can do that if there haven’t been any changes to that “recently”, like in the past 3-4 years. I haven’t looked for it for quite a while.

1 Like