The process is straightforward because HPE’s Linux‑based executable bundles are designed to be largely platform‑independent. Although the firmware packages are distributed in a Red Hat–style format, we can still extract their contents and run the necessary components manually. The workflow below outlines exactly how to do that!
tkrn@ubuntu ~/hpg4 $ sudo apt install rpm2cpio -y
tkrn@ubuntu ~/hpg4 $ mkdir hpg4
tkrn@ubuntu ~/hpg4 $ cd hpg4
tkrn@ubuntu ~/hpg4 $ curl -fL -o "firmware-hdd-9e87eecb3f-HPG4-1.1.x86_64.rpm" https://downloads.hpe.com/pub/softlib2/software1/sc-linux-fw-drive/p1689728671/v286501/rpm/RPMS/x86_64/firmware-hdd-9e87eecb3f-HPG4-1.1.x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5158k 100 5158k 0 0 859k 0 0:00:05 0:00:05 --:--:-- 1149k
tkrn@ubuntu ~/hpg4 $ ls
firmware-hdd-9e87eecb3f-HPG4-1.1.x86_64.rpm
tkrn@ubuntu ~/hpg4 $ rpm2cpio firmware-hdd-9e87eecb3f-HPG4-1.1.x86_64.rpm | cpio -idmv
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/.cpq_package.inc
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/.setup
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/CP072124.xml
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/M52002TBHPG4.rel
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/hpsetup
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/libsetup.so
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/mnv_cli
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/payload.json
./usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1/setup
./usr/lib/x86_64-linux-gnu/hp-scexe-compat
./usr/lib/x86_64-linux-gnu/hp-scexe-compat/CP072124.scexe
./usr/lib/x86_64-linux-gnu/scexe-compat
./usr/lib/x86_64-linux-gnu/scexe-compat/CP072124.scexe
32269 blocks
tkrn@ubuntu ~/hpg4 $ ls
firmware-hdd-9e87eecb3f-HPG4-1.1.x86_64.rpm usr
tkrn@ubuntu ~/hpg4 $ cd usr/lib/x86_64-linux-gnu/
tkrn@ubuntu ~/hpg4/usr/lib/x86_64-linux-gnu $ ls
firmware-hdd-9e87eecb3f-HPG4-1.1 hp-scexe-compat scexe-compat
tkrn@ubuntu ~/hpg4/usr/lib/x86_64-linux-gnu $ cd firmware-hdd-9e87eecb3f-HPG4-1.1/
tkrn@ubuntu ~/hpg4/usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1 $ ls
CP072124.xml hpsetup libsetup.so M52002TBHPG4.rel mnv_cli payload.json setup
tkrn@ubuntu ~/hpg4/usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1 $ ls -lah
total 8.3M
drwxr-xr-x 2 tkrn tkrn 11 Sep 3 09:08 .
drwxrwxr-x 5 tkrn tkrn 5 Sep 3 09:08 ..
-rw-r--r-- 1 tkrn tkrn 72K Jun 3 03:23 CP072124.xml
-rw-r--r-- 1 tkrn tkrn 331 Jun 3 03:23 .cpq_package.inc
lrwxrwxrwx 1 tkrn tkrn 5 Jun 3 03:23 hpsetup -> setup
-rwxr-xr-x 1 tkrn tkrn 13M Jun 3 03:23 libsetup.so
-rw-r--r-- 1 tkrn tkrn 1.5M Jun 3 03:23 M52002TBHPG4.rel
-rwxr-xr-x 1 tkrn tkrn 2.1M Jun 3 03:23 mnv_cli
-rw-r--r-- 1 tkrn tkrn 4.2K Jun 3 03:23 payload.json
-rwxr-xr-x 1 tkrn tkrn 18K Jun 3 03:23 .setup
-rwxr-xr-x 1 tkrn tkrn 6.8K Jun 3 03:23 setup
tkrn@ubuntu ~/hpg4/usr/lib/x86_64-linux-gnu/firmware-hdd-9e87eecb3f-HPG4-1.1 $ sudo ./setup
Online HDD/SSD Flash Component for Linux (x64) - VK000480GWSXF, VK000960GWSXH, VK001920GWSXK, MK000480GWUGF, MK000960GWUGH and MK001920GWUGK Drives (HPG4), searching...
1) VK000960GWSXH Drive 197162102FC2 (Generic HBA SAS3008 PCI-Express Fusion-MPT SAS-3 in Slot ATTR_VALUE_SLOT_UNKNOWN) (HPG3)
2) VK000960GWSXH Drive 197162102FC1 (Generic HBA SAS3008 PCI-Express Fusion-MPT SAS-3 in Slot ATTR_VALUE_SLOT_UNKNOWN) (HPG3)
Select which devices to flash [#,#-#,(A)ll,(N)one]> A
Flashing Drive 197162102FC2 (Generic HBA SAS3008 PCI-Express Fusion-MPT SAS-3 in Slot ATTR_VALUE_SLOT_UNKNOWN) [ HPG3 -> HPG4 ]
NDU flashing completed successfully
Flashing Drive 197162102FC1 (Generic HBA SAS3008 PCI-Express Fusion-MPT SAS-3 in Slot ATTR_VALUE_SLOT_UNKNOWN) [ HPG3 -> HPG4 ]
NDU flashing completed successfully
============ Summary ============
Smart Component Finished
Summary Messages
================
Smart Component opted to not flash 4 devices
2 new FW images have been activated
See log at /var/cpq/Component.log for details
Exit Status: 0
NDU flashing completed successfully
Selected devices updated successfully.
