storage - How to upgrade the firmware of HP SAS expander card without Smart Array controller or Proliant Server?
How can I update/upgrade/flash the
firmware of an HP SAS expander card [468406-B21 href="http://partsurfer.hp.com/Search.aspx?SearchText=468406-B21" rel="nofollow
noreferrer">a.k.a. href="http://h20566.www2.hp.com/portal/site/hpsc/template.PAGE/public/kb/docDisplay?javax.portlet.begCacheTok=com.vignette.cachetoken&javax.portlet.endCacheTok=com.vignette.cachetoken&javax.portlet.prp_ba847bafb2a2d782fcbb0710b053ce01=wsrp-navigationalState%3DdocId%253Demr_na-c01733557-4%257CdocLocale%253D%257CcalledBy%253D&javax.portlet.tpst=ba847bafb2a2d782fcbb0710b053ce01&ac.admitted=1412070310829.876444892.199480143"
rel="nofollow
noreferrer">487738-001]?
I used to
do this using Windows and a HP P410 Smart Array controller, however that controller is
no longer available.
The online ROM
flash component is not an option because I don't own HP Smart Array controller. Neither
is the href="http://www8.hp.com/us/en/products/server-software/product-detail.html?oid=5104018#!tab=features"
rel="nofollow noreferrer">HP Service Pack for ProLiant + USB key/stick an
option because that requires a ProLiant server.
Answer
Upgrading the HP SAS expander is possible using Linux and a SAS
HBA.
Note: Flashing firmware to a SAS
expander will likely not work when the expander is connected to a SAS
RAID controller because that controller might hide all
devices behind it from the OS. An example of a SAS HBA is href="http://www.supermicro.com/products/accessories/addon/AOC-SAS2LP-MV8.cfm"
rel="noreferrer">Supermicro
SAS2LP-MV8.
In case you
haven't got Linux, you can use a Linux Live CD. You could try the href="http://www.ubuntu.com/download/desktop/" rel="noreferrer">most recent Ubuntu
Live CD. A 32-bit download will do. 64-Bit will
also work.
1.
Prerequisites
Start
a Linux terminal
That is
Ctrl+Alt+T using
the Ubuntu LiveCD.Make
sure your internet connection is working
To download and install
additional componentsMake
sure your SAS expander card is detected in Linux#
lsscsi -g | grep HP
Should return something like:
/>[6:0:0:0] enclosu HP HP SAS EXP Card 2.08 - /dev/sg1
/>[6:0:1:0] enclosu HP HP SAS EXP Card 2.10 -
/dev/sg2
2.
Setup utility
You use
sg_write_buffer
version ≥ 1.15 to download microcode when the
expander is connected to a host bus adapter (HBA). To download and install this utility
in 32-bit Ubuntu or Debian, use:
#
curl -O http://sg.danny.cz/sg/p/libsgutils2-2_1.39-0.1_i386.deb &&
curl -O http://sg.danny.cz/sg/p/sg3-utils_1.39-0.1_i386.deb
&&
dpkg -i
*_1.39-0.1_i386.deb
The
sg_write_buffer
utility version ≥ 1.15 — distributed in href="http://sg.danny.cz/sg/sg3_utils.html"
rel="noreferrer">sg3_utils
version ≥ 1.39 — added
a --bpw
option to download in small chunks. An expander might
require a small chunk size like 4096
bytes.
3. Get and unpack HP
firmware
image
Get the
expander firmware image file, for example href="http://h20566.www2.hp.com/portal/site/hpsc/template.PAGE/public/psi/swdDetails/?sp4ts.oid=3923501&spf_p.tpst=swdMain&spf_p.prp_swdMain=wsrp-navigationalState%3Didx%253D3%257CswItem%253DMTX_07e17cded9e8409ea4b9d7ea74%257CswEnvOID%253D54%257CitemLocale%253D%257CswLang%253D%257Cmode%253D4%257Caction%253DdriverDocument&javax.portlet.begCacheTok=com.vignette.cachetoken&javax.portlet.endCacheTok=com.vignette.cachetoken"
rel="noreferrer">version 2.10 (C) — dated 9 Sep 2014:
/># curl -O
http://downloads.hpe.com/pub/softlib2/software1/sc-linux-fw-array/p6670438/v96061/CP022989.scexe
/>Although they sound like Windows/DOS executables,
.scexe
files from HP are really Linux executable scripts that
you can view in a text editor (at least the first
part).Running
a 64-bit Linux and having issues with the next command? Then make sure you can run
32-bit executables. The commands in Ubuntu are:# dpkg
--add-architecture i386 && apt-get update && apt-get install
libstdc++6:i386To
extract the firmware image from this .scexe file:# mkdir tmp
&& chmod +x CP022989.scexe && ./CP022989.scexe --unpack=tmp &&
mv tmp/PUF21000.bin . && rm -r
tmp/
4.
Flash SAS expander
When the expander to be
upgraded/flashed is named sg1
(check with
lsscsi -g | grep HP
),
use:
# sg_write_buffer
--mode=dmc_offs_defer --bpw=4096 --in=PUF21000.bin /dev/sg1
# sg_write_buffer
--mode=activate_mc
/dev/sg1
Older
devices might only support --mode=0x7
. Mode
0x7
is also known as dmc_offs_save
,
which does download microcode with offsets, save and
activate.
5. Remove temporary
files
# rm
PUF21000.bin
You might
need to unload (for instance modprobe -r mvsas
) and load (f.e.
modprobe mvsas
) your HBA module again or
reboot
to reflect the firmware version changes in
lsscsi -g
output.
Comments
Post a Comment