BladeSystem Management Software

Support Pack for Proliant Firmware Update over PXE

 
Peter Capriccio
Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Maybe I'm missing something, but I don't recall seeing support for httpd in "offline" mode. The "HP ProLiant and Integrity Firmware Management Best Practices Implementer Guide [HP Part Number: 613178-003, Published: February 2013, Edition: 1]" ( http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02049593/c02049593.pdf ) talks briefly about using httpd in the "Using a PXE server to deploy updates" section, but I'm guessing that the method shown in the latter section (which is far from complete, IMHO) might only be applicable when using a PXELINUX version that supports httpd and then it would only be used in place of tftp after pxelinux.0 is loaded (for example, when downloading the kernel and initrd).

 

Aside from that, I think the hosting choice depends on the host operating system and how comfortable you are with setting up the transport. IMHO, NFS makes more sense for a *NIX/BSD/Linux host whereas CIFS would be an obvious choice for a Windows host (not to say that it can't be the other way 'round, if you'd rather). For example, I'm using a Debian GNU/Linux host and although it has CIFS support (via Samba), I use NFS for serving out the SPP files because I'm more comfortable with setting it up (it seems simpler to me), but that is just me. I'm sure there are plenty of arguments to be made between NFS and CIFS regarding performance, resources, etc, but now I'm just trolling... :)

Michael Leu
Honored Contributor

Re: Support Pack for Proliant Firmware Update over PXE

I think the most complete instructions from HP are to be found in the SPP Release Notes. There is a chapter "Using a PXE Server to Deploy Components from the full SPP ISO over a network"

 

Direct Link for SPP 2013.09.0(B):  ftp://ftp.hp.com/pub/softlib2/software1/doc/p1822529277/v91508/SPP2013.09.0B-ReleaseNotes.pdf#page=23&zoom=auto,0,248

 

How to get there (in case the above link breaks):

http://www.hp.com/go/spp -> Download -> SPP Documentation -> Release Notes

Jim Choate
Occasional Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Thanks, Michael - those are indeed the current steps I'm following. Getting the following when attempting to PXE boot:

 

err, eth0 failed to lookup hostname via DNS: name or server not known

return from dhcpcd 0

 

Warning!!! Unable to mount the file system.

 

Dropping to a shell. Good luck!

 

Good luck, indeed. ;)

 

Thanks for your input as well, Peter. The httpd method intrigued me as we wanted to be able to add newer updates to the source without hacing to create new ISOs. First things first, I guess. FWIW, I'm using CentOS 5.9 (because it was handy) and I **think** I have things set right - but admittedly I'm not a regular Linux user (but willing to learn.)

Peter Capriccio
Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

I still don't see where httpd fits into your configuration, but then again I'm large of hands and small of brain...

Regarding the returned messages:

  err, eth0 failed to lookup hostname via DNS: name or server not known
  return from dhcpcd 0

The first line is a "normal" error message if you are not using DNS (I do not use it in my environment). The second line is the good news, as "sbin/netconfig.sh" is saying that the DHCP client daemon returned a good (0) status. You can confirm that the interface settings are what you expected by issuing the command:

  ifconfig eth0

from the shell that you are dropped to.

Regarding the warning message:

  Warning!!! Unable to mount the file system.

That message is coming from the "mount_media" function (defined in "etc/initrd.functions" and called from "init"), which calls "sbin/mount_url.sh". Since "sbin/netconfig.sh" is being run, your boot menu "media=" entry is set correctly, but did you correctly define your "iso1" and "iso1mnt" entries? For example, here is a PXELINUX boot menu example of what I use to NFS mount the extracted contents of the SPP ISO image (ala "Madis" method, courtesy of Madis Rehepapp -- see: http://h30499.www3.hp.com/t5/ITRC-ProLiant-Deployment/PXE-Boot-Image-from-an-ISO/m-p/3743898#M2965 ):

    label SPP-2013.09.0
        MENU LABEL ^0) Firmware Update   2013.09.0(B)
        kernel SPP-2013.09.0/vmlinuz
        append initrd=SPP-2013.09.0/initrd.img media=network rw root=/dev/ram0 ramdisk_size=808296 init=/bin/init loglevel=3 ide=nodma ide=noraid nopat pnpbios=off vga=791 splash=silent hp_fibre showopts noexec32=off numa=off nox2apic TYPE=MANUAL AUTOPOWEROFFONSUCCESS=no iso1=nfs://192.168.1.254/SPP-2013.09.0/ iso1mnt=/mnt/bootdevice
        ipappend 2
        TEXT HELP
    HP Service Pack for ProLiant 2013.09.0(B)
    Interactive Firmware Update
        ENDTEXT

 Note that according to "sbin/mount_url.sh" (and as Michael mentioned, the SPP release notes) only SMB/CIFS, NFS, and local file systems are supported for mounting the ISO (or its extracted contents). From the shell that you are dropped to, you can attempt to mount your share/exported file sysem from the command line to see what error is returned. What protocol are you using to share out the contents of the ISO? Can you post your boot menu entry?

QuimaxW
Occasional Advisor

Re: Support Pack for Proliant Firmware Update over PXE

...another note with 2013.09, the cifs is still broken as the kernel is still missing the 'crypto' modules.

Jim Choate
Occasional Advisor

Re: Support Pack for Proliant Firmware Update over PXE


@Peter Capriccio wrote:

I still don't see where httpd fits into your configuration, but then again I'm large of hands and small of brain...

Regarding the warning message:
  Warning!!! Unable to mount the file system.
That message is coming from the "mount_media" function (defined in "etc/initrd.functions" and called from "init"), which calls "sbin/mount_url.sh". Since "sbin/netconfig.sh" is being run, your boot menu "media=" entry is set correctly, but did you correctly define your "iso1" and "iso1mnt" entries? For example, here is a PXELINUX boot menu example of what I use to NFS mount the extracted contents of the SPP ISO image (ala "Madis" method, courtesy of Madis Rehepapp -- see: http://h30499.www3.hp.com/t5/ITRC-ProLiant-Deployment/PXE-Boot-Image-from-an-ISO/m-p/3743898#M2965 ):

    label SPP-2013.09.0
        MENU LABEL ^0) Firmware Update   2013.09.0(B)
        kernel SPP-2013.09.0/vmlinuz
        append initrd=SPP-2013.09.0/initrd.img media=network rw root=/dev/ram0 ramdisk_size=808296 init=/bin/init loglevel=3 ide=nodma ide=noraid nopat pnpbios=off vga=791 splash=silent hp_fibre showopts noexec32=off numa=off nox2apic TYPE=MANUAL AUTOPOWEROFFONSUCCESS=no iso1=nfs://192.168.1.254/SPP-2013.09.0/ iso1mnt=/mnt/bootdevice
        ipappend 2
        TEXT HELP
    HP Service Pack for ProLiant 2013.09.0(B)
    Interactive Firmware Update
        ENDTEXT

What protocol are you using to share out the contents of the ISO? Can you post your boot menu entry?


We can ignore the whole "httpd" thing, since obviously that's apparently a work in progress with HP.

 

Thanks for the link - the "Madis" method is the one I'm looking for. I'm using NFS for the share. My boot menu entries (I have two) are identical to yours and to the one in the Madis example, aside from using my own IP addresses & NFS shares names.

 

Neither one works, and I'm still getting "unable to mount the file system" and dropped to a shell.

 

(I've found that end-of-month/end-of-quarter is not the best time to be trying to troubleshoot such things. :/ )

 

If I try to mount anything from the shell, I get "can't read /etc/fstab". My guess is that I'm missing something on the server side in regards to how I have NFS set up. But that's just a guess.

Peter Capriccio
Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Okay -- since you are using NFS, can you post your configuration?

For example, here is what I do on my Debian server regarding the NFS export directory:

- first, create the directory to hold the SPP contents:

 

# mkdir /home/FIRMWARE/SPP-2013.09.0

- optionally, create a symbolic link in the root directory to the SPP directory to shorten the path to "/SPP-2013.09.0" (not necessary, I'm just lazy):

 

# ln -s /home/FIRMWARE/SPP-2013.09.0/ /

- next, add an entry to "/etc/exports":

 

/SPP-2013.09.0  192.168.0.0/16(ro,sync,no_root_squash,no_subtree_check)

- finally, run "exportfs" to export the file system, where:

  - r = applies any changes that have been made to /etc/exports
  - v = verbose operation (optional)

 

# exportfs -vr

 - according to the CentOS V5.x docs ( http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-nfs.html ) you can use "exportfs" or tell NFS to reload the exports file:

 

# service nfs reload

Of course, this assumes that NFS has already been setup to start on boot -- you can check the status (according to the CentOS V5.x docs) via:

 

# service portmap status
# service nfs status

When the "can't read '/etc/fstab'" message is returned from your mount command at the SPP shell, this is usually because the command is incomplete -- that is, the "mount" command requires the "device" and "directory" arguments to be present when issuing the command -- if you only supply one or the other, it will attempt to read "/etc/fstab" to obtain the missing parameter, but in this environment that file does not exist. For example, if I provide the "device" parameter of the command without the "directory" (mount point) parameter, I get that error message:

 

# mount -o nolock 192.168.1.254:/SPP-2013.09.0
mount: can't read '/etc/fstab': No such file or directory

 If your NFS service is not running, you would normally see something like this when you try to manually mount the file system from the SPP shell:

  NOTE that in the SPP's initial "busybox" shell, you need to specify the "nolock" option for NFS mounts, otherwise the process will hang for a long time before eventually timing out -- at least that has been my experience -- you can run commands in the background by using an ampersand ("&") at the end of the command line to avoid the wait

 

# mount -o nolock 192.168.1.254:/SPP-2013.09.0 /mnt/bootdevice
mount: RPC: Remote system error - Connection refused
mount: mounting 192.168.1.254:/SPP-2013.09.0 on /mnt/bootdevice failed: Bad file descriptor

 If your NFS service is running, but you are missing the proper entry in "/etc/exports", you will see something like this:

 

# mount -o nolock 192.168.1.254:/SPP-2013.09.0 /mnt/bootdevice
mount: 192.168.1.254:/SPP-2013.09.0 failed, reason given by server: Permission denied
mount: mounting 192.168.1.254:/SPP-2013.09.0 on /mnt/bootdevice failed: Bad file descriptor

NOTE that "/mnt/bootdevice" is where the SPP startup scripts mount the exported file system, but for testing you can use just "/mnt" or create your own mountpoint directory.

Jim Choate
Occasional Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Success!

Came down to bad pathing in my pxelinux.cfg along with improper permissions on my NFS share.

I really appreciate you getting me pointed in the right direction, Peter.
GrandBlanka
Frequent Visitor

Re: Support Pack for Proliant Firmware Update over PXE

Hey im trying to PXE boot the spp 2013.09.0 (b)

 

But under bootup i get this:

 

/sbin/mount_url.sh: line 216: Iligal number: -1

Warning!!! Unable to mount the file system

 

Dropping to a shell. Good luck!

 

/bin/ash: can't acces tty; job turned off

#

 

 

 

 

me default file looks like this:

 

DEFAULT /pxelinux.cfg/vesamenu.c32
prompt 0
timeout 17

label sos
menu label Automatic Firmware Update Version 2013.09.0
kernel spp2013090/vmlinuz
append initrd=spp2013090/initrd.img media=net rw root=/dev/ram0 ramdisk_size=808296 init=/bin/init loglevel=3 ide=nodma ide=noraid nopat pnpbios=off vga=791 splash=silent hp_fibre showopts noexec32=off numa=off nox2apic TYPE=MANUAL AUTOPOWEROFFONSUCCESS=no iso1=//192.168.0.20/ROOT/HP.iso iso1mnt=/mnt/bootdevice

 

 

I have been reading all the posts in here, but when i tryed a possible solution i just got a new error, and when i fixed that: back to the first error. 

 

Im trying to update a Proliant DL380p server.

 

 

Hope u guys can help me out.

 

Thanks

 

Kasper

dcolpitts
Frequent Advisor

Re: Support Pack for Proliant Firmware Update over PXE

Kasper - below is my pxelinux.cfg\default file.  Try this for your entry instead.  You should also be able to test using a VM configured with a E1000 adapter - it will save you a bunch of time in testing - if you can get the HPSPP GUI to start in a VM, you'll be golden with your DL380p.  Just keep in mind your VM will need 4GB of RAM (I use a 2GB RAM disk), and use the LSI Logic SAS adapter with a drive type of SCSI.  If you are using VMware Workstation 10, I believe creating a new VM with a Guest type of 2008 R2 will give you everything you need to test with if you use defaults.

 

Be sure to adjust the bolded IP address, paths, and ISO filename as required below.

 

default menu.c32
menu title PXE Boot Menu
timeout 600
prompt 0
noescape 1

label HP Support Pack for Proliant 2013.09.0B
menu label HP Support ^Pack for Proliant 2013.09.0B
kernel hpspp/vmlinuz
append initrd=hpspp/initrd.img media=net rw root=/dev/ram0 ramdisk_size=2097152 init=/bin/init loglevel=8 ide=nodma ide=noraid nopat pnpbios=off vga=791 hp_fibre showopts noexec32=off numa=off nox2apic TYPE=MANUAL iso1opts=nolock,rsize=32768,wsize=32768,timeo=600,hard,intr,proto=udp,vers=3,ro iso1mnt=/mnt/bootdevice iso1=nfs://xxx.xxx.xxx.xxx/tftpboot/hpspp/SPP2013090.2013_0830.30.iso ipappend 2 netparm=device=eth0,verbose

 

Good luck.

 

dcc