Manually upgrading code:
Note: this example is for brocade 5.4.0d, the 05400d filename suffix changes with each version of code, dependent on whether or not Brocade updated that portion of code in that most recent revision.
Step 1) scp Monitor/ManagementModule/xmb05400d.bin email@example.com:flash:monitor
Step 2) scp Boot/ManagementModule/xmprm05400d.bin firstname.lastname@example.org:flash:boot
Step 3) scp Combined/Application/xm05400d.bin email@example.com:image:primary
Step 4) scp Monitor/InterfaceModule/xmlb05400d.bin firstname.lastname@example.org:lp:monitor:all
Step 5) scp Boot/InterfaceModule/xmlprm05400d.bin email@example.com:lp:boot:all
--Note: These can take quite a long time.
Step 6) scp Combined/FPGA/lpfpga05400d.bin firstname.lastname@example.org:lp:fpga-all:all:force-overwrite
Step 7) scp FPGA/ManagementModule/mbridge_05400d.xsvf email@example.com:mbridge
Semi-Automated Upgrade of Code:
If you've done the manual process above, you may realize it requires constant-ish attention and is pretty error prone if you're trying to do more than one at a time, to help alleviate that, we've built a simple script that wraps scp with Expect, and can upgrade multiple brocades in parallel available below:
upgrade_brocades.pl is an incredibly simple, one-off script which contains an array of scp commands to run against each switch, uses GRNOC-CLI to get username and password, and this very simple scp wrapper to enable password reuse.
To use it currently requires editing of the upgrade_brocades.pl code to change the source file of each scp command:
This is the same list as above in the manual process, but you will want to use absolute directories
an example of the edits required for brocade 5.6.0fb:
This is obviously a work in progress and such optimizations as moving the command list to an external source are possible, but not yet implemented.
my @commands = ('/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Monitor/ManagementModule/xmb05600.bin [%hostname%]:flash:monitor',
#--Note: These can take quite a long time.