BladeSystem Management Software

Re: Support Pack for Proliant Firmware Update over PXE

Peter Capriccio
Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

I think the issue in your case is with your "iso1=" parameter -- the "parse_url" function within "/sbin/" gets called at line 216 and it is expecting a ":" to delimit the protocol from the rest of the string (even though the examples at the beginning of the script show something contrary). You can test it from the shell it drops you to, ie:


# /sbin/ //
/sbin/ line 216: Illegal number: -1


It expects to find "nfs:", "cifs:", or "smb:" and if not, it tries to guess the protocol. However, it seems that without the ":", the function chokes and then you get the "illegal number:-1". If you are using CIFS/SMB to share out the ISO, you should indicated that in your "iso1=" parameter, but even just inserting a colon (":") after the "iso1=" will at least get you by the parser.


The bad news is that as QuimaxW indicated in message 65 of this thread, the crypto stuff is still missing, so CIFS/SMB won't work anyway -- for example:


# /sbin/ ://
modprobe: FATAL: Could not open '/lib/modules/3.0.58-0.6.2-default/kernel/crypto/md5.ko': No such file or directory

mount: mounting // on /mnt/ failed: No such file or directory

 and in dmesg:


[ 2693.561111] CIFS VFS: could not allocate crypto hmacmd5
[ 2693.561113]
[ 2693.561115] CIFS VFS: could not setup hash structures rc -2




Frequent Visitor

Re: Support Pack for Proliant Firmware Update over PXE

Thanks for the help guys. I got it working!


Debian NFS is the answer!




Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Most of our client sites are pure Windows sites, and introducing Linux is a head ache in getting approval, etc. As such, we utilize "haneWIN NFS Server for Windows". It's $29 Euros per installation (or site in our case), so it is cost effective for our setups, and setup and configuration takes about 30 seconds (we just cut and paste the exports in to the config file after installation and restart the NFS service to make the changes active).

The HPSPP works fine with it, and we use also 3Com OEM Boot Services for our TFTPBOOT / PXE server.

Honored Contributor

Re: Support Pack for Proliant Firmware Update over PXE

I just use the built-in windows NFS services. Works great :)

If my post was helpful please award me Kudos! or Points :)
Trusted Contributor

Re: Support Pack for Proliant Firmware Update over PXE

Frequent Visitor

Re: Support Pack for Proliant Firmware Update over PXE

Hi, still following this thread and again big thanks for keeping this here up to date.


I got the 2013.09B working again ;-).


-as you can read in thread same bug like before kernel modules missing for booting spp from smb share



You can found the rpm with kernel module here


After implementing the kernel modules, i was still not able to pxe boot up with DL580G7.

Because of like usual network card nx_nic driver was missing


You have to edit the initrd.functions in /etc of initrd file.

Change Line Nr. 330


NET_MODULES="e100 e1000 e1000e igb ixgbe qlcnic tg3 bnx2x be2net bnx2 netxen_nic


NET_MODULES="e100 e1000 e1000e igb ixgbe qlcnic tg3 bnx2x be2net bnx2 nx_nic


Then repack the file like described here in the thread and you are done.


Saw many post here regarding get it to work under Windows/with SMB Share as Server(should work for linux as well):


Setup TFTP for example with that freeware

Copy the whole contet of the system directory from spp to /tftproot/HP

Create a share and User with Password that have access rights

Copy the whole SPP.iso into this share 

In the TFTP Folder in the pxelinux.cfg Folder (are the config file createated) 

Create a flile 01-macadddress like this format: 01-ma-ca-dd-rr-es-ss 

Create boot DHCP Entry with option 66, 67. Put in Option 66 your TFTP Server, in Option 67 pxelinux.0

Edit the content, use sample files from hp and use the following append sting:


append initrd=HP/initrd.img media=net rw root=/dev/ram0 ramdisk_size=900000 init=/bin/init loglevel=3 ide=nodma ide=noraid  ip=dhcp  nopat pnpbios=off vga=791 splash=silent hp_fibre showopts noexec32=off numa=off nox2apic TYPE=AUTOMATIC AUTOPOWEROFFONSUCCESS=yes iso1=smb://username:password@yoursmbserver/HP/HP_FW_Update.iso iso1mnt=/mnt/bootdevice


Hope that helps.






Please keep posting here.










Peter Capriccio
Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Well, the new SPP is out (SPP-2014.02.0) and PXE boot support continues, however there are a few caveats:

1.) You will need to remove the "cdcache" kernel command line parameter from your menu entry -- this is new with this version and if you are using the file "system/isolinux.cfg" from the DVD as your menu entry template, it includes this parameter -- the relevant section of the "init" file in the initrd.img shows:

if [ -n "$(cat /proc/cmdline | grep -i 'cdcache')" ] ; then
    # unmount ${BOOTDEVICEMP} so the new root can mount/unmount
    umount "${BOOTDEVICEMP}" 2>/dev/null
    umount "${CHROOT_DIR}/${BOOTDEVICEMP}" 2>/dev/null

    # create new script to mount the boot media in the chroot
    echo '#!/bin/bash'         > "${CHROOT_DIR}/etc/init.d/boot.d/"
    cat /etc/initrd.default   >> "${CHROOT_DIR}/etc/init.d/boot.d/"
    cat /etc/initrd.functions >> "${CHROOT_DIR}/etc/init.d/boot.d/"



    chmod +x "${CHROOT_DIR}/etc/init.d/boot.d/"

 but when PXE booting, this unmounts the NFS/CIFS file share, but it never gets remounted -- the "mount_media" function call is supposed to do this, but when "media=net*", the "supermount_isos" function is called to mount the shares, which in turn expects to find "/sbin/", but the latter is only present in the initrd and not the squashfs. The "cdcache" parameter is checked for elsewhere, but for me at least, removing it from the menu entry leaves the network share mounted and everything seems to work as in the past. BTW, there are a lot of new parameter checks in the "init" file -- not sure if they are for some future functionality or what, but it looks interesting...

2.) I ran into a big problem when PXE booting and then doing updates from the CP021069 package ("HP Broadcom Online Firmware Upgrade Utility for Linux x86_64"). During my testing, I was using some BL460c (G1) blades and while this package is not supported on this server model, per the "Server Support Guide" for this release:

HPSUM still selected it and it "bricked" the onboard (LOM) NC373i NICs and I have been unable to recover them. During the boot, there is a script that gets executed to place all of the network interfaces (up to 32) administratively "UP", as this is a requirement for the network firmware upgrade package -- from "CP021069.txt":

  Performing the Firmware Upgrade
  1. This utility requires all the associated ethernet interfaces to be up.
  You can  bring up an ethernet interface by using the following command:

          # ifup ethx


          # ifconfig ethx up

When running this update interactively, I opened a debug shell (Ctrl+Alt+D+B+X) and monitored the interface status. Both NICs started out as "UP" (NIC1 had a DHCP obtained IP address as it was connected to the network with the file share). During the update, NIC1 (connected to the network file share) was no longer "UP" and so I'm assuming it lost connection to the network file share and the process hung which caused the update on both NICs to fail and end up in a corrupted state. As an attempted workaround, I copied the CP021069.scexe file to the squashfs and tried it on another server (thinking that since it was being launched from memory instead of from the network it might fare better) -- in this case, the update process still hung, but only NIC1 wound up corrupted and NIC2 got updated. Note that booting via a USB stick and running the same update worked correctly.

I'm not sure if it is something in my configuration or what, but the same CP021069 package worked without a hitch when PXE booting a supported server -- I tested it on a DL360G6 and although it has a different flavor LOM (NC382i), and uses different firmware files, they are all contained in the same package with presumably the same update mechanism. I suppose I need to check to see if the server being updated is supported for that particular component, but in Automatic mode, it selects it anyway. For what it is worth, the last supported version of the "HP Broadcom Online Firmware Upgrade Utility for Linux x86_64" for the BL460c (G1) is 2.6.14 (4 Sep 2012), which is available via SPP-2012.10.0 and which also works without a problem when PXE booted.

On the bright side, it would appear that this release contains the required files for CIFS network shares -- I haven't tested it (I use NFS), but the crypto libraries seem to be present.


Pete C.

Michael Leu
Honored Contributor

Re: Support Pack for Proliant Firmware Update over PXE

Thanks for the great post Pete!


I've had both onboard NICs (NC373i aka BCM5708) bricked on a DL385 G2 by this SPP.

On subsequent boots into the SPP from a physical DVD those NICs were not even discovered anymore so I could not force another firmware update.


There is a very interesting thread about possibly recovering from such firmware failures with a tool called "xdiag" and booting from a DOS ISO:

Occasional Visitor

Re: Support Pack for Proliant Firmware Update over PXE

Did anybody manage to integrate the MSB into a PXE bootable SPP (2014.02)?


Any attempts I tried resulted only in the SPP not finding any baseline at all, or at maximum the SPP default baseline without the MSB.