WD Blue SA510 SATA SSD Firmware Update in Linux

WD Blue SA510 SATA SSD

Here's how our SSD appears fresh from the factory:

There is a CRITICAL FIRMWARE UPDATE available! Except that the update can only be installed from Windows via the Western Digital Dashboard tool.

Fortunately, with the help of this guide we can reverse-engineer the firmware update system and perform an update from Linux!

Obtain the firmware

Starting at https://wddashboarddownloads.wdc.com/wdDashboard/config/devices/lista_devices.xml and searching for the device model (WD Blue SA510 M.2 2280 500GB) we get the path wdDashboard/firmware/WD_Blue_SA510_M.2_2280_500GB/52020100/device_properties.xml.

Combining that with the base URL, we get https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_Blue_SA510_M.2_2280_500GB/52020100/device_properties.xml which shows us that the latest firmware version is 52020100; and that our current firmware (52008100) is a dependency, i.e. we can upgrade directly from our current version to this new version.

Combining the fwfile element text with the previous URL gives us https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_Blue_SA510_M.2_2280_500GB/52020100/52020100.fluf which we download.

Prepare the update disk

We download WD's update software from https://wddashboarddownloads.wdc.com/wdDashboard/application/EmbeddedLinux.zip and extract it. We copy the contents of Img/to-esp directory to the root directory of a FAT32 filesystem on a USB disk.

That's the following files/directories:

Finally we create an empty file named embedded-toolkit.cfg and put it in the root directory.

Booting from the update disk

Now the moment of truth...

wd-toolkit-1.png

Well this is exactly as janky as I expected.

wd-toolkit-2.png

I guess one of these is my WD Blue SSD, the other is the other internal SATA SSD from a different manufacturer, and the third is the godawful no-name USB flash disk I booted from.

Let's just hope I pick the right one!

(Not pictured: you actually have to type in the firmware update filename (52020100.fluf); there's no file selector...)

wd-toolkit-3.png

Nonetheless, it has worked!

Depressingly predictable questions

Why can't WD use the Linux vendor firmware service, so that firmware updates are as simple as an fwupdmgr update?

Failing that, why can't they at least release a proprietary firmware update tool, so that you don't have to boot off a special USB disk?


CategoryTechnote

robots.org.uk: WDBlueSA510SATASSDFirmwareUpdateLinux (last edited 2023-05-09 23:25:57 by sam)

© Sam Morris <sam@robots.org.uk>.
Content may be distributed and modified providing this notice is preserved.