As I don't have access to a similar hardware, all of my findings are opinions and NOT to be considered as working instructions. Modifying firmware of hardware devices flashing ALWAYS involves the risk of bricking hardware.
The Linux packge contains the following files which are most likely relevant, comments noted with #
:
├── framework64
│ ├── duppmdatacollector.bin
│ ├── getSystemId
│ ├── hapi
│ │ ├── funcs
│ │ │ ├── instsvc-uninstall.sh
│ │ │ ├── srvadmin-hapi.sh
│ │ │ └── srvadmin-omilcore.sh
│ │ └── hapi64.tgz
│ └── sputility.bin
├── l64
# sasdupie seems to be the flasher executable, tries to run dupdisneyinstall.sh
# which seems to install hapi64.tgz, but didn't try to run that with sufficient priviledges.
│ ├── sasdupie
# RPM contains some LSI libraries, which will be installed in /opt/lsi/
# these files are NOT the same as in the directory
│ └── srvadmin-storelib-sysfs-7.2.0-4.1.1.el4.x86_64.rpm
# the xml contains the information:
# 4. If this is a BIOS update package, install any necessary Embedded Systems
# Management firmware prior to this BIOS update. Otherwise, go next step.
# could be related to dupdisneyinstall.sh
├── package.xml
├── payload
# this looks to be the actual drive firmware file
│ └── E770.fwh
# PIEConfig.sh holds information for the firmware, and looks to describe the sasdupie call
├── PIEConfig.sh
# PIEInfo.txt describes required the steps for the installation.
├── PIEInfo.txt
Calling l64/sasdupie
prints the help message, if not run as root
there the script dupdisneyinstall.sh
fails with insufficent privileges.
Running strace -e file l64/sasdupie
shows that sasdupie
tries to load libraries that are not part of this firmware file. Most likely these are part of the mentioned Embedded Systems Management firmware
in package.xml
.
So a way forward can be to:
- install the
Embedded Systems Management firmware
- run
l64/sasdupie
as root
and see if dupdisneyinstall.sh
succeeds
- in case it works, use the options from
PIEConfig.sh
to execute l64/sasdupie
Should your system be a 32-bit system, use l32
instead of l64
.