Hello dear lovley forum members. It's my first time posting here after being pointed in the right direction by a kind forum member regarding firmware updates.
During my reasearch i missed this thread by accident. Facing a few headaches with updating the firmware. It's a Samsung PM893, will post a picure bellow.
My goal is to update the firmware and keep doing it in the most painless, least time consuming way(preferably on windows) because i haven't got a lot of time for downtime or linux. I tried the windows version of dc toolkit 3.0 on windows 10 while running as an admin the programm would open, spew a bunch of text and then close. Installed Ubuntu 18.04 to run the provided version for Linux but it didn't see it as an application and wouldn't launch no matter what i did. Am i doing something wrong? I feel like I'm in hell right now.
Should i install an os on another drive when i flash the PM893 drives or i can run an os and flash it from there? Installing windows server a good idea?
If you are wondering how i got the drives, i came across a deal of 240GB and 480GB that cost 10$ more or on par with the 870 evo's and extra three years of warranty (95% of 870 evos in my country come with two years warranty). Got it for $65 with a five year warranty, last on offer from a local vedor and without a chance of ever restocking. Did i get a great deal or?
View attachment 43822
From Windows it's normal that it opens a Windows and the closes immediately.
You need to first open a Command Prompt (or possibly Powershell ?) and THEN
cd C:\my\path\to\the\program and
<program>.exe --option1 --option2 ....
As an alternative (which I tried before I realized that my Samsung PM983 M.2 NVMe Drive required the 2.1 Version, while the 3.0 Version caused a Segmentation Fault under Debian 12 AMD64), you might do what I did, assuming you can pass the SATA Controller through (or install a temporary LSI HBA which you might need ANYWAYS):
a. Get a Debian / Ubuntu / Fedora ISO
b. Create a LiveUSB. 32GB minimum, 64GB recommended
c. Install
cockpit and
cockpit-machines (for Fedora it is probably already installed)
d. For Debian and Ubuntu you might need to add
systemd on the Lines of
/etc/nsswitch.conf for
passwd,
group,
shadow, see
Failed to resolve group cockpit-wsinstance-socket: No such process · Issue #21986 · cockpit-project/cockpit for the Details
e. Suggest you also install the
virtiofs Driver /
virtiofsd Daemon, so you can setup a Shared Folder between Host and Guest
e. Probably easiest is to restart/reboot the System
f. Download Hiren's Boot CD PE from
Hiren's BootCD PE:
mkdir /var/lib/libvirt/isos; cd /var/lib/libvirt/isos; wget <download link> -O hirens-boot-cd-pe.iso
e. Login into Cockpit at
https://<ip>:9090
f. Create a new VM, Set OS to Windows 11, select ISO from previous Path, Probably no Hard Drive Storage required
g. Verify that Intel VT-x & VT-d / AMD IOMMU / SVM are enabled in the BIOS and also in the OS (typically this is configured in
/etc/default/grub or
/etc/default/grub.d/<whatever>.cfg)
g. Select your SAS/SATA Controller and pass it through to the VM. This Part requires that your USB and SATA Controllers are in different IOMMU Groups which is usually NOT the case. You could try to split the IOMMU Groups (NOT reccomended) or you can install a PCIe LSI HBA in a PCIe Slot
h. Boot the VM. You will be greeted in a Windows Environment
i. (I didn't get to this Part yet so not sure how it works from Windows PE) Setup the VirtioFS Share between Host and Guest so you can share the Firmware and DC Toolkit that Way
j. Run the DC Toolkit as you are running basically
I did NOT flash from Windows PE since by the Time I realized I needed v2.1 (v3.0 would cause a Segmentation Fault in Windows), I was in the Middle of a Upgrade (trying to install latest QEMU & Cockpit from Debian Backports) so I did NOT want to risk it having the PCIe Device passed through the VM at that critical Point.
But, if you want, you can also do the same with another Version of Linux (pretty much same Procedure).
For VirtioFS in that Case assuming from your Host you mount Source Path
/home/<user>/Shared/<myvm> to Target Path
/Shared, then from the Guest it's as simple as putting this in
/etc/fstab:
Code:
# Shared Files via VirtioFS Driver
/Shared /home/<user>/Shared/ virtiofs rw,auto,nofail,x-systemd.automount 0 0