Manual steps to upgrade the firmware of supermicro.
Supermicro firmware upgrade involves manual steps. These steps include creating upgrade package, modifying the script and validating the integrity of the upgrade package.
Note:
Ensure that you upload the downloaded firmware upgrade package, the upgrade-script.sh
, and firmware-index.xml
in the same absolute path.
Prerequisites
Obtain the firmware upgrade file.
Upload the firmware file to a web server.
Ensure that Telco Cloud Automation has permission to access the web server location to obtain the uploaded files and packages.
Procedure
- Create the
upgrade-script.sh
. Use the below example to create the upgrade script.
Note:
The example uses E810 card. To create the script for other cards, change the E810 to the card name for which you need to create the script.
Modify the command nvmupdaten64e
with the required command based on the card type. You can get the commands in readme.txt
file in upgrade package.
datastore=$(esxcli storage filesystem list| awk '{ print $1 }' | tail -n +3 | head -n 1)
echo $datastore
cd $datastore/; rm -rf E810; ls *.gz |xargs -n1 tar -xzf
cd $datastore/
check_version(){
#Dont forget the space added below
if echo "X" | ./nvmupdaten64e | grep "Update " ; then
echo "Inside check_version"
echo "./nvmupdaten64e"
return 1
else
echo "it's in else"
return 0
fi
}
e810=$(ls | grep -nr "E810")
if [ -z "$e810" ]
then
echo "Contains different card"
exit 1
else
cd E810
esx=$(ls | grep -nr "ESXi_x64")
if [ -n "$esx" ]
then
cd ESXi_x64
echo $PWD
nvm=$(ls | grep -nr "nvmupdaten64e")
echo "NVM is $nvm"
if [[ $1 == "--check_version" ]]
then
check_version
output=$?
echo "output is $output"
return $output
fi
if [[ -n "$nvm" ]]
then
echo "PWD is: $PWD"
./nvmupdaten64e -u -l -o update.xml -b -c nvmupdate.cfg
return 0
else
echo "Invalid package"
return 1
fi
fi
fi
- Generate the checksum for the
upgrade-script.sh
.
- Generate the checksum for the downloaded firmware file.
- Create the
firmware-index.xml
. Use the below example to create the firmware index file.
<metaList>
<metadata>
<url>E810_NVMUpdatePackage_v2_32_ESX.tar.gz</url>
<checksum>fbbb201dfcc4c900e4fc5d3a6f4264110d4a32cdecec43c55d04164130b8d249</checksum>
</metadata>
<metadata>
<url>upgrade-script.sh</url>
<checksum>0faa2fb41347377ad1435911abc4eb38246a7fcf5c3cdcea3e21e34778678cac</checksum>
</metadata>
</metaList>
url : In the first url tag, enter the name of the upgrade file.
checksum : In the first checksum tag, enter the checksum generated for the upgrade package file.
url : In the second url tag, enter the name of the upgrade script file.
checksum : In the second checksum tag, enter the checksum generated for the upgrade script file.
- Generate the checksum for the
firmware-index.xml
file.
- Open Telco Cloud Automation.
- Navigate to Infrastructure Automation.
- Click Configuration and then click Host Profile.
- On the Host Profile page, to add new host profile, click Add.
- To add firmware details, click Add Firmware. Enter the following details:
Add the firmware name in the Name field. For Supermicro, this is a user defined field.
Add the identity of the firmware, that the vendor provides, in the Software field. For Supermicro, this is a user defined field.
Add the version of the firmware to which you want to upgrade the current firmware in the Version field.
Add the location of the firmware-index.xml
file in the Location field.
Note:
Ensure that you use only a HTTP-based URL.
Add the checksum generated for the firmware-index.xml
file in the Checksum field.