not-a-feature / wd_fw_update

Updates the firmware of Western Digital SSDs on Ubuntu / Linux Mint.
https://wd-fw-update.readthedocs.io
GNU General Public License v3.0
22 stars 3 forks source link

Can't find firmware for "WD PC SN740 SDDPTQD-1T00" #9

Open shelvacu opened 5 months ago

shelvacu commented 5 months ago

Running NixOS on a Framework 16

$ wd_fw_update -vv
[[2024-06-28 13:46:13]] DEBUG:wd_fw_update.main:Namespace(loglevel=10)
[[2024-06-28 13:46:13]] INFO:wd_fw_update.main:Starting firmware update process.
Western Digital SSD Firmware Update Tool

[[2024-06-28 13:46:13]] DEBUG:wd_fw_update.main:Getting device list.
[[2024-06-28 13:46:13]] DEBUG:wd_fw_update.main:Asking for device: ['/dev/nvme0n1', '/dev/nvme1n1']

[?] Select the NVME drive you want to update: 
   /dev/nvme0n1
 > /dev/nvme1n1

[[2024-06-28 13:46:21]] DEBUG:wd_fw_update.main:Getting device properties.
[[2024-06-28 13:46:21]] INFO:wd_fw_update.main:Model name: WD PC SN740 SDDPTQD-1T00
[[2024-06-28 13:46:21]] DEBUG:wd_fw_update.main:Getting firmware url.
[[2024-06-28 13:46:21]] DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): wddashboarddownloads.wdc.com:443
[[2024-06-28 13:46:21]] DEBUG:urllib3.connectionpool:https://wddashboarddownloads.wdc.com:443 "GET /wdDashboard/config/devices/lista_devices.xml HTTP/11" 200 45945
Traceback (most recent call last):
  File "/tmp/tmp.B5xaB9c0ui/bin/wd_fw_update", line 8, in <module>
    sys.exit(run())
             ^^^^^
  File "/tmp/tmp.B5xaB9c0ui/lib/python3.11/site-packages/wd_fw_update/main.py", line 555, in run
    main(sys.argv[1:])
  File "/tmp/tmp.B5xaB9c0ui/lib/python3.11/site-packages/wd_fw_update/main.py", line 545, in main
    wd_fw_update()
  File "/tmp/tmp.B5xaB9c0ui/lib/python3.11/site-packages/wd_fw_update/main.py", line 481, in wd_fw_update
    relative_urls = get_fw_url(model=model)
                    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/tmp.B5xaB9c0ui/lib/python3.11/site-packages/wd_fw_update/main.py", line 169, in get_fw_url
    raise RuntimeError("No Firmware found for this model. Please check your selection / model.")
RuntimeError: No Firmware found for this model. Please check your selection / model.

It seems SN740 isn't in the usual list at all, I'm not sure where to find firmware files for this drive.

not-a-feature commented 5 months ago

Yes the 740 firmware isn't supported. I haven't figured out if/where there is version that could be integrated.

For windows, dell provides an updater: https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=d5c6n&lwp=rt

shelvacu commented 2 months ago

https://community.frame.work/t/notes-from-attempting-to-extract-wd-pc-sn740-firmware-from-dell-updater-exe/58376

shelvacu commented 2 months ago

I was able to install fw version 731120WD (labeled as for SN770) and it seems to be working just fine

$ sn740=nvme0
$ cat /sys/class/nvme/$sn740/model
WD PC SN740 SDDPTQD-1T00
$ cat /sys/class/nvme/$sn740/firmware_rev
731120WD
$ sudo nvme fw-log /dev/$sn740
Firmware Log for device:nvme0
afi  : 0x2
frs1 : 0x3030303031313337 (73110000)
frs2 : 0x4457303231313337 (731120WD)
not-a-feature commented 2 months ago

Thanks for diving into this.

According to a few sources the SN 740 is an OEM version of the SN 770.

While the NAND Flashs have different part numbers, the SN 770 and the SN 740 share at least the same controller.

While it seems to work in your case, I'm not confident to include these findings into the updater.

shelvacu commented 2 months ago

I totally agree you shouldn't install the firmware automatically; Could you include a link to more information when this model is detected so the user can make their own choice?

not-a-feature commented 2 months ago

Sounds good. If i have some spare time i'll implement that