Flash Upgrading Your Server to Release 1.2

This chapter contains procedures and information for upgrading Sun Firetrademark X4100 and Sun Fire X4200 servers to Release 1.2 from earlier releases. See the following sections:


How to Flash Upgrade Your Server to
Release 1.2

The Integrated Lights Out Manager (ILOM) firmware (FW) and BIOS are tightly coupled and are always updated together. The Release 1.2 Upgrade software bundle contains new ILOM FW and BIOS upgrades, plus a number of optional enhancements to the software that was shipped with earlier releases:

 

The following section shows a summary of the steps you should perform to update your server from Release 1.0 or Release 1.1 to Release 1.2.

Summary of ILOM SP/BIOS Flash Upgrade Steps



caution icon

Caution - If you are upgrading from SW 1.0 to SW 1.2, you must first upgrade to SW 1.1 or you might experience problems displaying FRUID information. The symptom of the problem is that product-specific FRU information (product part number, product serial number, chassis serial number) might display incorrectly, or as zeroes. For instructions on upgrading from SW 1.0 to SW 1.1, see theSun Fire X4100 and Sun Fire X4200 Server Release Notes For Software Release 1.1, 819-5033.





caution icon

Caution - Do not load (backflash) ILOM service processor and BIOS firmware older than SW 1.2 on Sun Fire X4100/X4200 servers. Hardware changes have been made on newer systems that require the newest ILOM and BIOS firmware to operate properly. The format of FRU data has also been extended, and is not displayed properly with older ILOM firmware.



1. Determine which version of the ILOM firmware that you currently have. See How to Determine The Firmware Version of Your Server.


Release Version

Firmware version

Firmware Build

Release 1.2

FW 1.0.5

12029

Release 1.1

FW 1.0.2

10664

Release 1.0

FW 1.0.0

6464


2. Download and run the ilom.X4100-preflash_1.2.sh (or later) pre-flash script file to prepare your server for the flash upgrade.

For detailed instructions, including automated procedures for running the pre-flash script on multiple servers (with a sample automation scripts for copying), see Running the Pre-Flash Script. Download the file from this URL:

http://www.sun.com/servers/entry/x4100/downloads.jsp



caution icon

Caution - Possible ILOM service processor damage: You must apply the pre-flash script to ILOM SPs that have firmware version r10664.rom.imaor earlier, to avoid possible corruption of the SP. The flash recovery process from this corruption is complicated, and might not succeed, requiring replacement of the SP hardware (see Recovering From a Failed Flash Updatefor details). The pre-flash script is only required for upgrading from ILOM SP version r10664.rom.imaor earlier.





Note - If you ran the pre-flash script to upgrade from SW 1.0 to SW 1.1, you do not have to run the pre-flash script again to upgrade from SW 1.1 to SW 1.2.



3. Review the section Special Considerations Regarding the ILOM Firmware Release 1.0.5 Update for known issues and considerations regarding the flash upgrade.

4. Download the ilom.X4100-1.0.5.ima flash image from the URL below:

http://www.sun.com/servers/entry/x4100/downloads.jsp

5. Use the ILOM GUI, the ILOM CLI load command, or N1 System Manager to perform the flash upgrade.

Because of the increased memory usage during web-based GUI operations, you might need to use N1 System Manager or the ILOM CLI load command to upgrade the ILOM firmware. See the N1 System Manager documentation or the Integrated Lights-Out Manager Administration Guide, 819-1160 for details of firmware flashing. For example:

From the ILOM CLI, use the following command

load -source tftp://<tftpserver>/<firmware.ima>

Online documentation for Sun N1 System Manager can be found at:

http://docs.sun.com/coll/1283.2



caution icon

Caution - To ensure a successful flash upgrade, do notattempt to modify the ILOM configuration, or use other ILOM GUI, CLI, SNMP, or IPMI interfaces during the flash upgrade process. Wait until after the flash upgrade succeeds to make further ILOM configuration changes. Note that the ILOM upgrade procedure might reset the service processor if it detects recent ILOM configuration changes, or multiple ILOM users or connections.





Note - A firmware upgrade causes the server and ILOM to reset. An upgrade takes about 20 minutes to complete. ILOM will enter a special mode to load new firmware. No other tasks can be performed in ILOM until the firmware upgrade is complete and the ILOM is reset.



For full instructions on performing a flash upgrade, see the section, "How to Upgrade the ILOM Firmware" in the Integrated Lights Out Manager (ILOM) Administration Guide, 819-1160. You can find the document at this URL:

http://www.sun.com/products-n-solutions/hardware/docs/Servers/x64_servers/x4100/index.html

6. If you have any problems with the flash upgrade, refer to the sectionRecovering From a Failed Flash Update.


How to Determine The Firmware Version of Your Server

There are three alternate procedures in this section that you can use:

Determining the Firmware Version Using the CLI Through the Management Ethernet Port

1. Connect an RJ-45 Ethernet cable to the NET MGT Ethernet port on the back panel.

2. Establish an SSH connection using the following command, then enter the default password (changeme) when you are prompted:

# ssh -l root <SP IP address>

changeme

After you have successfully logged in, the SP displays its default command prompt:

->

3. Type the version command, which will return output similar to the following:

-> version

SP firmware version: 1.0

SP firmware build number: 10644

SP firmware date: Tue Sep 13 12:50:37 PDT 2006

SP filesystem version: 0.1.13

The ILOM firmware build version is the build number listed above.

Determining the Firmware Version Using the CLI Through the Serial Port

1. Configure your terminal device or the terminal emulation software running on a laptop or PC to the following settings:

2. Connect a serial cable from the RJ-45 SER MGT port on your server's back panel to your terminal device or PC.

3. Press Enter on the terminal device to establish a connection between that terminal device and the server's SP.

The SP displays a login prompt.

SUNSP0003BA84D777 login:

In this example login prompt, 0003BA84D777 is the Ethernet MAC address of the SP. This will be different for each server.

4. Log in to the ILOM SP and type the default user name (root) with the default password (changeme).

After you have successfully logged in, the SP displays its default command prompt:

->

5. Type the version command, which will return output similar to the following:

-> version

SP firmware version: 1.0

SP firmware build number: 10644

SP firmware date: Tue Sep 13 12:50:37 PDT 2006

SP filesystem version: 0.1.13

The ILOM firmware build version is the build number listed above.

Determining the Firmware Version Using the Web GUI

1. Connect to the ILOM Web GUI by typing the IP address of the server's SP into your browser's URL field. For example:

https://129.146.53.150

2. Log in to the ILOM SP and type the default user name (root) with the default password (changeme).

The first web page that is presented is the System Information -> Versions page, which includes the Build Number.


Running the Pre-Flash Script

This section contains a summary of the pre-flash script process, followed by detailed instructions for supported operating system platforms.

Summary Pre-Flash Script Procedure

This ilom.X4100-preflash_1.2.sh (or later) pre-flash upgrade script prepares Sun Fire X4100 and Sun Fire X4200 ILOM service processors (SPs) for safe upgrade from version r10664.rom.ima or earlier to the latest release. The pre-flash script is only required for upgrading from version r10664.rom.ima or earlier.

To use this script, copy the script to each ILOM SP using the secure copy command scp(1), then execute the script using the secure remote shell command ssh(1). Use the sunservice shell account, which has the same password as the root account on the ILOM SP.

See the sample commands below:

ssh -l sunservice <spip_address> rm -f /coredump/* 
scp <pre-flash script name> sunservice@<spip_address>:/coredump 
ssh -l sunservice <spip_address> sh /coredump/<pre-flash script name> 


caution icon

Caution - The ILOM SP includes the sunserviceuser account, which shares the same password as the root account. It is provided solely to allow Sun Services personnel to perform diagnosis and recovery tasks. Customer use of the sunserviceaccount might interfere with the correct operation of the ILOM SP and is not supported unless it is used to perform procedures documented by Sun Microsystems.



The script displays one of the following two messages upon completion:

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

 

 

Detailed Pre-Flash Script Procedures

This section describes options for transferring the pre-flash script to the ILOM SP and running it on different OS platforms.

Options For Linux and Solaris Platforms

Transferring and Running the Script Using SSH and SCP

This procedure can be done without logging in to the SP, by using the secure remote shell command ssh(1) and the secure copy command scp(1).

Required Tools:

1. Download the pre-flash script and save it in a known directory.

2. Copy the script to the SP using the following commands:

ssh sunservice@<sp ip address> rm -f /coredump/* 
scp <pre-flash script name> sunservice@<sp ip address>:/coredump 

3. Run the script using the following command:

ssh sunservice@<sp ip address> sh /coredump/<pre-flash script name>   

4. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

Transferring and Running the Script using TFTP

Required Tools:

1. Set up a TFTP server or use an existing one.

Refer to your OS documentation for instructions on setting up a TFTP server.

2. Download and save the pre-flash script to your TFTP root directory.

3. Log in as the sunservice account.

Use sunservice as the user name and the root password for the password.

ssh sunservice@<sp ip address> rm -f /coredump/* 

4. Transfer the pre-flash script to the SP using TFTP and the following commands:

cd /coredump
rm -f /coredump/*
tftp <tftp server IP address> -c get <pre-flash script name>

5. Run the pre-flash script:

sh /coredump/<pre-flash script name>

6. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

Transferring and Running the Script Using NFS

Required tools:

1. Export an NFS directory if none is available.

2. Copy the pre-flash script to the exported NFS directory.

3. Log in to the SP as the sunservice account.

Use sunservice as the user name and the root password for the password.

4. Mount the NFS directory.

mount <nfs server>:<nfs directory> /mnt

5. Remove any current coredump files using the following commands:

cd /coredump
rm -f /coredump/*

6. Run the pre-flash script:

cd /mnt
sh <pre-flash script name> 

7. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

 
Automated Solaris and Linux Procedure For Running the Script Using Expect and Tcl/Tk Software


Note - This procedure and the sample automated script text are also included in the README file that is included with the pre-flash script.



Required tools:

1. Install Tcl/Tk and Expect software, if not already installed.

You can download Expect from:

http://expect.nist.gov

2. Download the pre-flash script and save it in the same directory in which you saved the Expect files.

3. Use the Start menu Run dialog and run cmd.exe to open a command shell.

4. Change directory to the directory where you saved the Expect files and the pre-flash script.

5. Create a new file named apply.tcl in the same directory as the pre-flash and Expect files.

6. Copy and paste the code example from Automated Solaris and Linux Script For Expect Software into apply.tcl.

7. Save your changes to apply.tcl.

8. Run the apply.tcl file on the command shell with the following command and options:

expect apply.tcl [options]



Note - To automate running the script on multiple SPs, put all the SP IP addresses into a file that can be read by the script. List only one SP IP address per line. Then supply the file name to the script below with the -splist option. See the table below for all script options.




Script Options

Explanation

-sp <ip address>

or

-splist <file name>

The IP address of the server's ILOM SP.

 

The file that lists all the SPs to update, for automated

multiple-server upgrades.

-password <password>

The root password if the default password is not used.

-scriptname <name>

The pre-flash script name, if the default is not used.

-query

Query whether the pre-flash script has already been run.


9. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

Automated Solaris and Linux Script For Expect Software
 
---------- Solaris and Linux Script Begin ---------
 
# Setting some default option
sp         ""
     user       "sunservice"
     passwd     "changeme"
     scriptname "ilom.X4100-preflash_1.2.sh"
     splist     ""
     query      ""
}
 
proc parse_arg {argc argv} {
    global OPT
    set i 0
    while { $i < $argc } {
        set arg [ lindex $argv $i ]
        incr i
        switch -exact -- $arg {
            "-sp"         { set OPT(sp) [lindex $argv $i]; incr i }
            "-user"       { set OPT(user) [lindex $argv $i]; incr i }
            "-passwd"     { set OPT(passwd) [lindex $argv $i]; incr i }
            "-scriptname" { set OPT(scriptname) [lindex $argv $i]; incr i }
            "-splist"     { set OPT(splist) [lindex $argv $i]; incr i }
            "-query"      { set OPT(query) "true" }
            default       { puts "Unknown option: $arg"; exit 1 }
       }
    }
}
 
proc copy_script {} {
    global OPT
 
    puts "Clear space in $OPT(user)@$OPT(sp):/coredump\n"
    spawn ssh -oUserKnownHostsFile=/dev/null $OPT(user)@$OPT(sp) "rm -f /coredump/core.*"
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } timeout {
                  puts "\n$OPT(scriptname) FAIL: timeout"; return 1
        }
    }
    puts "Copy $OPT(scriptname) to $OPT(user)@$OPT(sp):/coredump\n"
    spawn scp -oUserKnownHostsFile=/dev/null $OPT(scriptname) $OPT(user)@$OPT(sp):/coredump
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } "100%" {
                  puts "\nStill copying $OPT(scriptname) to $OPT(sp)"
									sleep 15
                  puts "\ncopy $OPT(scriptname) to $OPT(sp) done\n"
        } timeout {
                  puts "\nUnable to copy $OPT(scriptname) to $OPT(sp)"; return 1        } eof {
                  puts "\nUnable to copy $OPT(scriptname) to $OPT(sp)"; return 1 
        }
    }
    return 0
}
 
proc exec_script {} {
    global OPT
 
    puts "Executing $OPT(user)@$OPT(sp):/coredump/$OPT(scriptname)"
    spawn ssh -oUserKnownHostsFile=/dev/null $OPT(user)@$OPT(sp) sh /coredump/$OPT(scriptname)
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } "Success" {
                  puts "\n$OPT(scriptname) SUCCEED"
        } "Failure" {
                  puts "\n$OPT(scriptname) FAIL"; return 1
        } timeout {
                  puts "\n$OPT(scriptname) FAIL: timeout"; return 1
        } eof {
                  puts "\n$OPT(scriptname) FAIL"; return 1
        }
   }
   return 0
}
 
proc query_script {} {
    global OPT
 
    puts "Querying $OPT(user)@$OPT(sp)"
    spawn ssh -oUserKnownHostsFile=/dev/null $OPT(user)@$OPT(sp) ls -ltd /var/patchit
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } "Success" {
                  puts "\n$OPT(scriptname) SUCCEED"
        } "drwx" {
                  puts "\n$OPT(scriptname) already run on $OPT(sp)"; return 1
        } "No such file" {
                  puts "\n$OPT(scriptname) not yet run on $OPT(sp)"; return 1
        } timeout {
                  puts "\n$OPT(scriptname) FAIL: timeout"; return 1
        } eof {
                  puts "\n$OPT(scriptname) FAIL"; return 1
        }
   }
   return 0
}
 
parse_arg $argc $argv
 
if { [file exist $OPT(scriptname)] == 0 } {
    puts "$OPT(scriptname) does not exist or inaccessible\n"
    exit 255
} 
 
if {$OPT(sp) != ""} {
    if {$OPT(query) != ""} {
        query_script
    } elseif { [copy_script] == 0 } {
        exec_script
    }
} elseif { $OPT(splist) != "" } {
   if { [file exist $OPT(splist)] == 1} {
       set splistfile [open $OPT(splist) r]
       while { [gets $splistfile ipaddr] >= 0 } {
           set OPT(sp) $ipaddr
           if {$OPT(query) != ""} {
               query_script
           } elseif { [copy_script] == 0 } {
               exec_script
           }
       } 
   } else {
       puts "SP list file $OPT(splist) does not exist\n"
   }
} else {
    puts "\nUsage:	$argv0 -sp <sp ipaddress> "
    puts "		(or)"
    puts "	$argv0 -splist <filename that lists all SP ipaddress to update> "
    puts "\nOther options:"
    puts "	-passwd <password>  : root password if not default"
    puts "	-scriptname <name>  : preflash scriptname if not default"
    puts "	-query              : query if preflash script has already been run"
    puts "\n"
    exit 1
}
-------------- Solaris and Linux Script End --------------

Options For Windows Platforms

Transferring and Running the Script Using PuTTY

Required Tools:

1. Download PuTTY plink.exe and pscp.exe files and save them in a directory.

You can download these files from:

http://www.chiark.greenend.org.uk/~sgtatham/putty/

2. Download the pre-flash script and save it in the same directory in which you saved the PuTTY files.

3. Use the Start menu Run dialog and run cmd.exe to open a command shell.

4. Go to the directory where you saved the PuTTY files and the pre-flash script.

5. Copy the pre-flash script to the SP with the following PuTTY commands:

plink sunservice@<sp ip address> "rm -f /coredump/*" 
pscp <pre-flash script name> sunservice@<sp ip address>:/coredump 

6. Run the pre-flash script on the SP with the following PuTTY command:

plink sunservice@<sp ip address> "sh /coredump/<pre-flash script name>"

7. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

Transferring and Running the Script using TFTP

Required Tools:

Optional Tools:

1. Download the tftpd32.exe file and save it in a directory.

You can download this file from:

http://tftpd32.jounin.net



Note - This TFTP server does not require installation. The tftpd32 software will make all the files in the directory it is launched from available for TFTP. It can be started and stopped as desired.



2. Download and save the pre-flash script into the same directory in which you saved tftpd32.exe.

3. Start tftpd32.exe by running it from a command shell, or use File Browser to start it.

4. Make note of the IP address of the TFTP server that tftpd32 reports.

5. Log in to the SP as the sunservice account.

Use sunservice as the user name and the root password for the password.

6. Transfer and run the pre-flash script on the SP with following commands:

plink sunservice@<sp ip address> "rm -f /coredump/*" 
cd /coredump
tftp <tftp server IP address> -c get <pre-flash script name>
sh <pre-flash script name>

7. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

Automated Windows Procedure For Running the Script Using Expect and PuTTY Software


Note - This procedure and the sample automated script text are also included in the README file that is included with the pre-flash script.



Required tools:

1. Install Tcl/Tk and Expect software, if not already installed.

You can download Expect from:

http://expect.nist.gov

2. Download the pre-flash script and save it in the same directory in which you saved the Expect files.

3. Use the Start menu Run dialog and run cmd.exe to open a command shell.

4. Change directory to the directory where you saved the Expect files and the pre-flash script.

5. Create a new file named apply.tcl in the same directory as the pre-flash and Expect files.

6. Copy and paste the code example from Automated Windows Script For Expect Software into apply.tcl.

7. Save your changes to apply.tcl.

8. Run the apply.tcl file on the command shell with the following command and options:

expect apply.tcl [options]



Note - To automate running the script on multiple SPs, put all the SP IP addresses into a file that can be read by the script. List only one SP IP address per line. Then supply the file name to the script below with the -splist option. See the table below for all script options.




Script Options

Explanation

-sp <ip address>

or

-splist <file name>

The IP address of the server's ILOM SP.

 

The file that lists all the SPs to update, for automated

multiple-server upgrades.

-password <password>

The root password if the default password is not used.

-scriptname <name>

The pre-flash script name, if the default is not used.

-query

Query whether the pre-flash script has already been run.


9. The script displays one of the following two messages upon completion.

If this message is displayed, the ILOM SP can be safely upgraded, using any of the firmware upgrade methods (CLI, GUI, Sun N1 System Manager), with or without configuration preservation. Return to Step 3 of Summary of ILOM SP/BIOS Flash Upgrade Steps.

If this message is displayed, reset the SP, then apply the pre-flash script again (see How to Reset the SP).

Automated Windows Script For Expect Software
-----------Windows Script Start --------------
 
#!/bin/sh
# 
#  Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
#  Use is subject to license terms.
#
# \
exec tclsh "$0" ${1+"$@"}
package require Expect
 
# Setting some default option
array set OPT {
     sp         ""
     user       "sunservice"
     passwd     "changeme"
     scriptname "ilom.X4100-preflash_1.2.sh"
     splist     ""
     query      ""
}
 
proc parse_arg {argc argv} {
    global OPT
    set i 0
    while { $i < $argc } {
        set arg [ lindex $argv $i ]
        incr i
        switch -exact -- $arg {
            "-sp"         { set OPT(sp) [lindex $argv $i]; incr i }
            "-user"       { set OPT(user) [lindex $argv $i]; incr i }
            "-passwd"     { set OPT(passwd) [lindex $argv $i]; incr i }
            "-scriptname" { set OPT(scriptname) [lindex $argv $i]; incr i }
            "-splist"     { set OPT(splist) [lindex $argv $i]; incr i }
            "-query"      { set OPT(query) "true" }
            default       { puts "Unknown option: $arg"; exit 1 }
       }
    }
}
 
proc copy_script {} {
    global OPT
 
    puts "Clear space in $OPT(user)@$OPT(sp):/coredump\n"
    spawn plink -ssh $OPT(user)@$OPT(sp) "rm -f /coredump/core.*"
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } timeout {
                  puts "\n$OPT(scriptname) FAIL: timeout"; return 1
        }
    }
    puts "Copy $OPT(scriptname) to $OPT(user)@$OPT(sp):/coredump\n"
    spawn pscp $OPT(scriptname) $OPT(user)@$OPT(sp):/coredump
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } "100%" {
                  puts "\nStill copying $OPT(scriptname) to $OPT(sp)"
									sleep 15
                  puts "\ncopy $OPT(scriptname) to $OPT(sp) done\n"
        } timeout {
                  puts "\nUnable to copy $OPT(scriptname) to $OPT(sp)"; return 1        } eof {
                  puts "\nUnable to copy $OPT(scriptname) to $OPT(sp)"; return 1 
        }
    }
    return 0
}
 
proc exec_script {} {
    global OPT
 
    puts "Executing $OPT(user)@$OPT(sp):/coredump/$OPT(scriptname)"
    spawn plink -ssh $OPT(user)@$OPT(sp) sh /coredump/$OPT(scriptname)
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } "Success" {
                  puts "\n$OPT(scriptname) SUCCEED"
        } "Failure" {
                  puts "\n$OPT(scriptname) FAIL"; return 1
        } timeout {
                  puts "\n$OPT(scriptname) FAIL: timeout"; return 1
        } eof {
                  puts "\n$OPT(scriptname) FAIL"; return 1
        }
   }
   return 0
}
 
proc query_script {} {
    global OPT
 
    puts "Querying $OPT(user)@$OPT(sp)"
    spawn plink -ssh $OPT(user)@$OPT(sp) ls -ltd /var/patchit
    expect {
        "(y/n)?" {
                  exp_send "n
"; exp_continue
        } "(yes/no)?" {
                  exp_send "yes
"; exp_continue
        } "password:" {
                  exp_send "$OPT(passwd)
"; exp_continue
        } "Success" {
                  puts "\n$OPT(scriptname) SUCCEED"
        } "drwx" {
                  puts "\n$OPT(scriptname) already run on $OPT(sp)"; return 1
        } "No such file" {
                  puts "\n$OPT(scriptname) not yet run on $OPT(sp)"; return 1
        } timeout {
                  puts "\n$OPT(scriptname) FAIL: timeout"; return 1
        } eof {
                  puts "\n$OPT(scriptname) FAIL"; return 1
        }
   }
   return 0
}
 
parse_arg $argc $argv
 
if { [file exist $OPT(scriptname)] == 0 } {
    puts "$OPT(scriptname) does not exist or inaccessible\n"
    exit 255
} 
 
if {$OPT(sp) != ""} {
    if {$OPT(query) != ""} {
        query_script
    } elseif { [copy_script] == 0 } {
        exec_script
    }
} elseif { $OPT(splist) != "" } {
   if { [file exist $OPT(splist)] == 1} {
       set splistfile [open $OPT(splist) r]
       while { [gets $splistfile ipaddr] >= 0 } {
           set OPT(sp) $ipaddr
           if {$OPT(query) != ""} {
               query_script
           } elseif { [copy_script] == 0 } {
               exec_script
           }
       } 
   } else {
       puts "SP list file $OPT(splist) does not exist\n"
   }
} else {
    puts "\nUsage:	$argv0 -sp <sp ipaddress> "
    puts "		(or)"
    puts "	$argv0 -splist <filename that lists all SP ipaddress to update> "
    puts "\nOther options:"
    puts "	-passwd <password>  : root password if not default"
    puts "	-scriptname <name>  : preflash scriptname if not default"
    puts "	-query              : query if preflash script has already been run"
    puts "\n"
    exit 1
}
--------------Windows Script End --------------
 
 

Determining Whether the Pre-Flash Script Has Been Applied

There are several methods you can use to determine whether the pre-flash script has been applied.

*** Patch installed ***

You may now upgrade your firmware

Please ensure you upgrade to the latest version available.

*** Success ***



caution icon

Caution - If you are upgrading from SW 1.0 to SW 1.2, you must first upgrade to SW 1.1 or you might experience problems displaying FRUID information. The symptom of the problem is that product-specific FRU information (product part number, product serial number, chassis serial number) might display incorrectly, or as zeroes. For instructions on upgrading from SW 1.0 to SW 1.1, see theSun Fire X4100 and Sun Fire X4200 Server Release Notes For Software Release 1.1, 819-5033.



ssh sunservice@<sp ip address> ls /var/patchit

If the text returned does not contain the following message, then the patch is applied and running.

No such file or directory

Locating ILOM Service Processor Addresses

There are several methods you can use to locate ILOM SPs and their IP addresses.

For example, the following command can be used to create a list of Sun Fire X4100 and Sun Fire X4200 servers:

n1sh show server | grep 'X4[12]00'

nmap -p 623 10.6.154.1/24

How to Reset the SP

To reset the ILOM SP, there are several methods you can use (for complete details, see the Integrated Lights-Out Manager Administration Guide, 819-1160):

reset /SP

ipmitool -U root -P <password> -H <sp_ipaddress> bmc reset cold

 


Special Considerations Regarding the ILOM Firmware Release 1.0.5 Update

This section describes considerations that might affect the firmware upgrade.

Flash Upgrades From SP Build 6464 or 10644 Fail With Bad /conf Partition (6415975)

These servers provide a combined ILOM service processor and BIOS firmware upgrade option. Flaws have been discovered in the ILOM upgrade feature, which may result in corruption of the ILOM service processor firmware and the motherboard SUN FRU ID record.

Workaround

Run the supplied preflash script on the service processor before upgrading the ILOM firmware. For detailed instructions, see Running the Pre-Flash Script.

FRU Information Appears Empty After Updating the ILOM Firmware and the BIOS (6406138)

The host CPU and DIMM FRU information shown by the service processor is provided to the service processor during each BIOS power-on-self-test (POST). Therefore, after a BIOS/ILOM upgrade, this FRU information is empty until the first host BIOS POST.

Workaround

This is expected behavior. Reset the server and allow it to complete POST during bootup to repopulate the FRU lists.

If Flash Upgrade to Release 1.2 Fails, No Error Messages Are Displayed (6449094)

In the preparation phase of the flash upgrade process, if the SP is unable to ensure the flash upgrade process will succeed, the SP is reset to prevent damage. This SP reset might occur 30 to 90 seconds after entering the flash upgrade mode. However, no error message is displayed to inform the user that the SP has reset.

Workaround

Although no error message is displayed, there are several methods you can use to determine that this SP reset has occured:

When flash upgrading using the CLI your prompt might reach the preserve configuration state before receiving a "connection closed" error, as shown in the example output below:

-> load -source tftp://hostname.domainname.com/tftpboot/<flash-image>
NOTE: A firmware upgrade will cause the server and ILOM to be reset. It is recommended that a clean shutdown of the server be done prior to the upgrade procedure. An upgrade takes about 20 minutes to complete. ILOM will enter a special mode to load new firmware. No other tasks can be performed in ILOM until the firmware upgrade is complete and ILOM is reset.
Are you sure you want to load the specified file (y/n)? y
File upload is complete.
Firmware image verification is complete.
Do you want to preserve the configuration (y/n)? Connection to 10.6.153.165 closed by remote host.
 

Once the SP has finished resetting and a login window is displayed, you can attempt the flash upgrade again.

 

When flash upgrading using the GUI interface, the user selects the "Maintenance" tab. Then under the subtab "Firmware Upgrade," the user presses the "Enter Upgrade Mode" button. This selection initiates the SP to enter the flash mode, which might cause the SP to reset on error.

If an error occurs, it will take 30 seconds for the File Upload page to appear, at which point you might be allowed to browse and click the Upload button. If an error did occur, the file will never finish uploading. Wait a minimum of 5 minutes before reloading the page or performing any other actions.

To check whether the SP has already reset before this time, you can open a new browser window and attempt to log in to the SP.

You can also check the status of the SP by logging in using the serial port, or by attempting to login via SSH to the SP IP address.

Once the SP has finished resetting and a login window is displayed, you can attempt the flash upgrade again.

 

If you use the IPMIflash command, the command will return an error message indicating that flash blocks could not be sent and that loading the image failed. See the example command output below.

-> ipmiflash write <SP IP address> -Uroot -Pchangeme <flash image> noconfig
************************************************************
  FIRMWARE UPGRADE MUST NOT BE INTERRUPTED ONCE IT IS STARTED
************************************************************
  During the ugprade process the system will be RESET.  If it is not currently powered off CANCEL now and power it off.
************************************************************
Ctrl-C to Cancel in 5 4 3 2 1
******************************************************
  System power is OFF
  The system will be held in RESET to flash the BIOS
******************************************************
Preparing Flash Area....... done
Loading Flash Image........ 0K
Error sending flash block: Flash Area Not Prepared
Loading Flash Image........ failed 

 

Once the SP has finished resetting and a login window is displayed, you can attempt the flash upgrade again.

New FRU Data Does Not Display Properly on Older SW Releases 1.0 and 1.1 (6475381)

Do not load (backflash) ILOM service processor and BIOS firmware older than the currently supported version in SW 1.2. Hardware changes have been made on newer systems that require newest ILOM and BIOS to operate properly. The format of FRU data has also been extended, and is not displayed properly with older ILOM firmware.

Workaround

None, this is expected behavior.

Upgrades From SW 1.0 Must Upgrade to SW 1.1 Before Upgrading to SW 1.2 or Later (6476901)

Customers who upgrade ILOM firmware from SW 1.0 to SW 1.2 or later, might experience problems displaying FRUID information. The symptom of the problem is that certain fields might display as zeroes. To avoid this problem, you must update from SW 1.0 to SW 1.1, before upgrading to SW 1.2 or later.

Workaround

To upgrade from SW 1.0 to SW 1.2 and later, upgrade from SW 1.0 to SW 1.1 first, then upgrade from SW 1.1 to SW 1.2 or later. For instructions on upgrading from SW 1.0 to SW 1.1, see the Sun Fire X4100 and Sun Fire X4200 Server Release Notes For Software Release 1.1, 819-5033.

 

Considerations When Starting the Update On Systems With ILOM Versions Earlier than 6464

If you were a Beta or Early Access customer, you might have a system with an ILOM version earlier than 6464.



Note - To determine the release of your server, see the procedures in How to Determine The Firmware Version of Your Server.



1. Upgrade to ILOM version 6464, the initial general release. See Upgrading the ILOM SP Firmware From Version 6169 to 6464 Causes SP Configuration To Be Lost" in the Sun Fire X4100 and Sun Fire X4200 Server Product Notes, 819-1162.

2. Power cycle the server. (Unplug, then reconnect its AC power cords.)

3. Upgrade to ILOM version 6464 again.

4. Upgrade to ILOM version 10644. See How to Flash Upgrade Your Server to Release 1.2 for additional considerations.


Recovering From a Failed Flash Update

This section contains instructions for recovering from a failed Sun Fire X4100 or Sun Fire X4200 ILOM firmware upgrade. Several issues have been identified with the firmware upgrade, which could result in a failed or incomplete firmware upgrade.

Use the following procedure to recover from a failed firmware upgrade. Note that in a small percentage of cases (such as when no output is displayed on the SP serial port), the Graphics Redirect and Service Processor (GRASP) board must be replaced.

Prerequisites:


Note - Numbers printed below are in hexidecimal unless otherwise noted.



Recovery Steps:

1. Determine if the ILOM SP first-level booter (referred to in this procedure as U-Boot) is intact. Follow documented procedures to connect to the SP serial port, apply power to the system, and observe the initial ILOM boot messages.

See the Sun Fire X4100 and Sun Fire X4200 Servers Installation Guide, 819-1155 for details.

2. Enter the ILOM SP U-Boot command interpreter with xyzzy.

When the message, Booting linux in 2 seconds... is displayed, during ILOM initial boot, type xyzzy to enter the U-Boot command interpreter.



Note - The characters typed will not echo. Cutting and pasting the characters improves the chance of success. You might need to try the process of applying power to the system and entering xyzzy several times.



3. Disable automatic reboot.

Set the U-Boot environment variable, bootretry, to -1 to temporarily disable automatic reboot:

set bootretry -1

4. Configure the network for TFTP access.

a. Copy the ILOM SP firmware image to a TFTP server that is accessible on the same IP subnet as the ILOM SP network port.

b. Set the IP address for the ILOM SP and the TFTP server IP address by setting the ethaddr and serverip U-Boot variables.

set ipaddr n.n.n.n
set serverip n.n.n.n

5. Use the U-Boot tftp command to download the ILOM firmware image.

tftp 100000 <firmware image>



Note - If the TFTP server or filename is incorrect, you might need to enter ^C to halt the tftp command, then repeat this recovery procedure.



Be sure that the complete flash image is actually downloaded successfully before proceeding. You should see a message similar to:

=> tftp 100000 r10644.rom.imaUsing FCC1 ETHERNET deviceTFTP from server 10.6.154.8; our IP address is 10.6.154.99Filename 'r10644.rom.ima'.Load address: 0x100000
Loading:###########################################################
###########################################################
###########################################################
###########################################################
##########################
done
Bytes transferred = 13107200 (c80000 hex)

6. Confirm that the download succeeded:

a. Confirm that the tftp command output ends with
Bytes transferred = ByteCount

b. Use the md command and confirm that its output displays strings from the beginning of the firmware image file. For example:

=> md 100000

00100000: 244d4f44 554c4524 01004000 00000200    $MODULE$..@.....
00100010: 00000000 000000f2 67726173 70000000    ........grasp...
00100020: 01000200 40000000 61000000 0000ffff    ....@...a.......
00100030: ffff0000 00000100 00000000 0000aa55    ...............U
00100040: 46575f56 45525349 4f4e3d31 2e302e31 FW_VERSION=1.0.1
00100050: 0a46575f 44415445 3d4d6172 20203320 .FW_DATE=Mar  3
00100060: 32303036 0a46575f 4255494c 4454494d    2006.FW_BUILDTIM
00100070: 453d3130 3a35363a 30370a46 575f4445    E=10:56:07.FW_DE
00100080: 53433d57 41524e49 4e47203a 20554e4f    SC=WARNING : UNO
00100090: 46464943 49414c20 4255494c 44212120    FFICIAL BUILD!!
001000a0: 0affffff ffffffff ffffffff ffffffff    ................

7. Erase the existing ILOM flash image:



caution icon

Caution - Interrupting the flash recovery process from this point onwards, or entering an incorrect U-Boot command, might result in a disabled service processor, which will require replacement. DO NOT stop or remove power from the system from this point onward.



a. Erase the exiting flash image with the erase ff380000 ffffffff command.

A series of dots will be displayed indicating the progress of the erase. For example:

=> erase ff380000 ffffffff

.................................................................................Erased 200/200 sectors

b. If a failure occurs, retry the erase command repeatedly until it succeeds.



Note - If a persistent failure occurs, the service processor is not flash-upgradable, and must be replaced. Refer to the Sun Fire X4100 and Sun Fire X4200 Servers Service Manual, 819-1157, for details on replacing the GRASP board.



8. Program the new ILOM firmware image:

a. Use the U-Boot cp.b command to copy the new ILOM firmware image from the download location at 100000 to ff380000, until end address ffffffff.

For example:

=> cp.b 100000 ff380000 ffffffff

Copy to Flash .............................................................................................................................................done

b. Use the fmh command to verify the new ILOM firmware image.

Before resetting, make sure the copy succeeded, using the fmh command, which should display firmware sections. For example:

=> fmh

Listing FMH Modules
Flash Size : 32768 KB
Erase Size : 64 KB
Sector Count : 512
  
FMH Located at 0xff380000 of Size 0x00020000
Name    : grasp
Ver     : 1.0
Type    : 0x0002
Flags   : 0x0000
Size    : 0x00000061
Location: 0xff380040
LoadAddr: 0xffffffff
CheckSum: Not Computed
--------------------------------------------------
  
FMH Located at 0xff3a0000 of Size 0x00120000
Name    : sysbios
Ver     : 1.31
Type    : 0x0000
Flags   : 0x0100
Size    : 0x00100000
Location: 0xff3c0000
LoadAddr: 0xffffffff
CheckSum: Valid
--------------------------------------------------
  
FMH Located at 0xff4c0000 of Size 0x000c0000
Name    : osimage
Ver     : 1.0
Type    : 0x0006
Flags   : 0x0119
Size    : 0x000ac9c8
Location: 0xff4c0040
LoadAddr: 0x00c00000
CheckSum: Valid
...


Note - If the command output does not show anything, you may have entered an incorrect memory address. Repeat the tftp, erase and cp.b commands until the image is properly copied. Note that you must erase the existing firmware image before attempting to copy a new image.



9. Reset the ILOM service processor.

Once you are certain that the service processor firmware image has been recovered, you can restart the service processor with the reset command.

=> reset

10. Recover the system BIOS:



Note - This manual ILOM SP recovery process does not reflash the system BIOS. Repeat the firmware upgrade process, using the ILOM GUI or CLI procedures as described in How to Flash Upgrade Your Server to Release 1.2 and the Integrated Lights-Out Manager Administration Guide, 819-1160.



Be sure to reset your service processor and BIOS configuration settings as needed, because they might be lost during this recovery.


Upgrading LSI Firmware and BIOS

The Release 1.2 software bundle includes LSI controller FW 1.10.00 and BIOS 6.06.06A.

For information about the LSI FW and BIOS, see the documentation that accompanies the LSI download.


Component Versions By Release

The service processor (SP) and BIOS software and the LSI firmware versions might be updated in each new release.

TABLE 1 lists the component versions for Release 1.2 of the Sun Fire X4100 and Sun Fire X4200 servers.


TABLE 1 Server Release 1.2 Component Versions

Component Name

Sun Fire X4100 Server Version

Sun Fire X4200 Server Version

ILOM FW 1.0.5

SP build 12029

SP build 12029

BIOS

0ABGA034

0ABGA034

LSI Firmware

fw1.10.00-bios6.06.06A

fw1.10.00-bios6.06.06A

Motherboard

501-7513

(RoHS compliant)

501-7514

(RoHS compliant)


TABLE 2 lists the component versions for Release 1.1 of the Sun Fire X4100 and Sun Fire X4200 servers.


TABLE 2 Server Release 1.1 Component Versions

Component Name

Sun Fire X4100 Server Version

Sun Fire X4200 Server Version

ILOM FW 1.0.1

SP build 10644

SP build 10644

BIOS

0ABGA031

0ABGA031

LSI Firmware

fw1.08.01-bios6.04.0A

fw1.08.01-bios6.04.0A

Motherboard

501-7261

501-6974


TABLE 3 lists the component versions for the initial release (Release 1.0) of the Sun Fire X4100 and Sun Fire X4200 servers.


TABLE 3 Server Release 1.0 Component Versions

Component Name

Sun Fire X4100 Server Version

Sun Fire X4200 Server Version

ILOM FW 1.0

SP build 6464

SP build 6464

BIOS

0ABGA022

0ABGA022

LSI Firmware

fw1.04.00-bios6.02.0A

fw1.04.00-bios6.02.0A

Motherboard

501-7261

501-6974