Sorry for the amateur question, but what would be the benefits of upgrading the SSD firmware in this case ?
Thanks for your time.
With the old/original firmware on the drive, the drive would sleep too aggressively and not wake up in a timely fashion, resulting in the drive no longer found after sleep and requiring a reboot.
Updated firmware has addressed this issue.
However, these drives have shipped with the updated firmware for quite some time now (6 months? A year?) so although updating drive firmware is usually a good idea, if your drive is new it probably already has the new firmware.
@Fraoch @Edward_Felder I was wondering if the official nvme-cli
tool can be used to update the WD Internal SSDs?
Refer:
Sounds interesting. It would depend on the raw firmware files being readily available and freely downloadable. As we see in the first post, these are currently available but WD has gone to great lengths to hide them. All they have to do is restructure their website, either as a matter of routine or a deliberate act, and weâll have to go on a treasure hunt again.
They have stated they will not provide any assistance to Linux users and seem to be actively hostile to them by making things unnecessarily difficult and putting up barriers.
I donât know, Iâve never tried it. If those firmware files in the first post of that thread will work with this tool then it should work.
If theyâre in a format that this tool wonât recognize, if WD has made their drives to not work with this method (not unlikely given their arrogance around this) or if new firmare files are hidden/unavailable then no it wonât work.
This also involves some brave person trying this out and risking bricking their SSD. It would be great to use this tool but Iâm not that brave.
Alright folks, I have a WD Blue, I think Iâve done all the steps above but I still get the âFirmware download failed - Binary Could Not Be Openedâ - any ideas what Iâm doing wrong?
> cat /sys/class/nvme/nvme0/model && cat /sys/class/nvme/nvme0/firmware_rev
WDC WDS100T2B0C-00PXH0
233010WD
Searched for WDS100T2B0C-00PXH0
here:
https://wddashboarddownloads.wdc.com/wdDashboard/config/devices/lista_devices.xml
<lista_device model="WDC WDS100T2B0C-00PXH0">
<url>
wdDashboard/firmware/WDC_WDS100T2B0C-00PXH0/211210WD/device_properties.xml
</url>
</lista_device>
View source of this XML:
view-source:https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WDC_WDS100T2B0C-00PXH0/211210WD/device_properties.xml
<?xml version="1.0"?>
<ffu version="1.0">
<model>WDC WDS100T2B0C-00PXH0</model>
<fwmode>mode3</fwmode>
<fwversion>211210WD</fwversion>
<fwfile>211210WD.fluf</fwfile>
<dependency model="WDC WDS100T2B0C-00PXH0">211070WD</dependency>
</ffu>
Downloaded 211210WD.fluf
from:
https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WDC_WDS100T2B0C-00PXH0/211210WD/211210WD.fluf
I have the boot disk with the fluf fule and the empty cfg in the root:
> ls -lh
total 201M
-rw-r--r-- 1 travis travis 2.5M Dec 2 09:23 211210WD.fluf
drwxr-xr-x 3 travis travis 4.0K Oct 1 2019 boot
drwxr-xr-x 3 travis travis 4.0K Oct 1 2019 EFI
-rw-r--r-- 1 travis travis 0 Dec 2 09:29 embedded-toolkit.cfg
-rw-r--r-- 1 travis travis 371K Dec 3 23:31 embedded-toolkit-usb.log
-rw-r--r-- 1 travis travis 190M Oct 1 2019 rootfs.cpio.gz
drwxr-xr-x 2 travis travis 4.0K Oct 1 2019 syslinux
-rw-r--r-- 1 travis travis 8.2M Oct 1 2019 vmlinuz
Judging from the version numbering scheme (but without deeper knowledge) to me it seems as if your drive exposes a firmware that is newer than the one youâre trying to install:
installed 233010WD > downloaded 211210WD
Ah jeez, I shouldâve noticed that. Thanks!
Thanks for the guide, as a side-note: you need to disable secure boot in order to run the usb-boot
Has anyone tried to extract the firmware from the fluf file? Then you could maybe update it via nvme cli or something like that. function inside the embedded-toolkit executable (inside rootfs.cpio.gz) seems to be yadl_nvme_linux_execute according to the log it creates.
To disable Secure Boot, execute this from the terminal (assuming your distro uses systemd).
systemctl reboot --firmware-setup
Navigate to Security, then Secure Boot and disable it.
Unfortunately, I canât come to my goal with that tool. Tried with 2 different NVMe SSDs, but ended with âFirmware Download Failedâ twice.
- WD BLACK SN770 2TB (brand new disk)
I ended up with this firmware file:
https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_BLACK_SN770_2TB/731100WD/device_properties.xml
Error Log File showed the following:
error code: 6
error subcode: 65282
message: device error detected, status ffh, error 2h
- SanDisk Ultra 3D NVMe 2TB (internal disk, already in use for some time)
Ended up here: https://wddashboarddownloads.wdc.com/wdDashboard/firmware/SanDisk_Ultra_3D_NVMe_2TB/234200WD/device_properties.xml
with the following Error Log Info:
error code: 1
error subcode: 0
message: SCSI Error: Status: 2H Sense Code: 05/20/00H
Any help appreciated. Can anybody enlighten me?
I flashed/updated 1x WD BLACK SN770 500 GB + 1x WD BLACK SN770 1 TB and all succeeded very quickly.
I was wondering did you put all the files from Embeddedlinux.zip in the root of the usb and. formatted the usb with MBR/FAT32? I think that I first used GPT instead of MBR and that was not working.
Also you need to enter the firmware filename (731100WD.fluf must also be in the root of the usb stick) Inside the linux update tool
Keep in mind that in Linux filenames are Case-Sensitive, so it must match the correct file + casing.
You also might need to check the bios/uefi of your motherboard if the nvme ssdâs are using the correct (auto? m2?) settings to get detected.
Good luck.
I have a:
- WD Black SN750 NVMe 1TB drive
- Model WDBRPG0010BNC-WRSN
- Firmware version 102000WD
Does anyone have this firmware? Or any firmware for this drive, even older?
You checked https://wddashboarddownloads.wdc.com/wdDashboard/config/devices/lista_devices.xml ? cause I cant find it with the info you gave. does it work? thenrun those commands under linux maybe?
edit: this isnt you ? SN750 Firmware .FLUF file urgently needed - WD SSD Drives & Software - WD Community (I think this user could just have looked at their ESP, uefi partition and cleaned up the firmware files and set windows as the next boot option. not sure if this is the case but https://www.easyuefi.com/ in windows would allow editing of the boot part. not even sure the firmware flasher would just flash a incompatible firmware )
Hi,
JFYI, my successful WD BLACK SN850X 2GB
firmware upgrade using standard nvme-cli tool:
@Edward_Felder, thank you for the manual+links to firmware/.flur files!
This was perfect! Instructions were very detailed and it worked on the first try! Hopefully this will prevent my Framework from freezing on me. Itâs only very recently that my laptop started freezing though, even though Iâve had it for over a year⌠I wonder if there was a Linux kernel update that wasnât playing nice with the old firmwareâŚ?
To streamline the update process I wrote a bash script for Ubuntu / Linux Mint. It combines this and Oleksadrs post:
@not_a_feature it never occurred to me that the fluf file is the direct firmware image that you can send via nvme âŚ
Iâve made some updates to your script, some drives have more than onve firmware version available and you need to select which one you will upgrade to, I am guessing you can do some lookup with dependencies and look for the currently installed firmware rev and then decide to which version you should upgrade to and if itâs latest, but I only fixed it so I can upgrade my drive if I select the correct one
updated rev:
https://gist.github.com/Klaas-/ffa1e0759f0b9e6a1fcc94c2fb1aa8d7
feel free to integrate into yours, then Iâll remove my fork.
I also fixed some stuff shellcheck complained about.
Example of a disk with two firmwares available:
WD_BLACK SN850X 1000GB
and maybe some todos for anyone who wants to play around some more:
there are multiple firmware slots, maybe it would be a good idea to check which slot is supposed to be used for a new firmware ( nvme-fw-commit(1) â Arch manual pages )
My disk has two slots for example. Both are read/write so you should check which slot is running current firmware and update the other one.
also you can see if you can apply the firmware online:
$ nvme id-ctrl /dev/nvme0 -H|grep -i Firm
[9:9] : 0x1 Firmware Activation Notices Supported
[4:4] : 0x1 Firmware Activate Without Reset Supported
[3:1] : 0x2 Number of Firmware Slots
[0:0] : 0 Firmware Slot 1 Read/Write
$ nvme fw-log /dev/nvme0
Firmware Log for device:nvme0
afi : 0x2
frs1 : 0x4457313133303236 (620311WD)
frs2 : 0x4457313633303236 (620361WD)