Fixing Dell LCC Updates

All new Dell servers come with a Lifecycle Controller, the LCC, which is a way to do offline firmware updates. Reboot the system into the Lifecycle Controller by pressing F10 and you can then have it do search for and update firmware as necessary.

The firmware update tool does this by download a manifest which contains information and links to the actual download files. However this file contains bad links causing the Lifecycle Controller to throw a cryptic error: SUP0531

The reason is that the manifest contains bad links that has an extra string and shows ‘ftp://143.166.147.76//downloads.dell.com/…”, the ‘downloads.dell.com’ part is what causes it to fail, remove it and the paths are correct.

One way to fix the the problem is to use a proxy that will dynamically correct the URL, squid can do this by the use of a redirect_program such as this one, it will simply rewrite the URL without the download.dell.com part and make it so that the LCC can download and install the updates

#!/usr/bin/perl
use strict;
use warnings;

# Turn off buffering to STDOUT
$| = 1;

my $logfile = '/var/log/squid/dellfixer.log';

open ( my $fh, '>', $logfile ) or die "Could not open logfile '$logfile' $!";

# Read from STDIN
while (<>) {
    
    my @elems = split; # splits $_ on whitespace by default
    
    # The URL is the first whitespace-separated element.
    my $url = $elems[0];

    if ( $url =~ m#^ftp://143\.166\.147\.76//downloads\.dell\.com(/.*)?#i) {
        $url = "ftp://143.166.147.76${1}";
	print $fh $url . "\n";
        print "$url\n";
    }
    else {
        
        # Unmodified URL
        print "$url\n";
        
    }
}

close $fh;