{"id":582,"date":"2013-04-12T23:46:51","date_gmt":"2013-04-13T03:46:51","guid":{"rendered":"http:\/\/www.glaver.org\/blog\/?p=582"},"modified":"2013-04-13T01:45:40","modified_gmt":"2013-04-13T05:45:40","slug":"dell-poweredge-r300-esm-bmc-firmware-updates-on-unsupported-os","status":"publish","type":"post","link":"https:\/\/www.glaver.org\/blog\/?p=582","title":{"rendered":"Dell PowerEdge R300 ESM \/ BMC firmware updates on non-supported operating systems"},"content":{"rendered":"<p>Dell has generally been quite good about making firmware updates available in a variety of formats. In addition to the normal Windows and Linux versions, most patches are also available as a floppy \/ USB image or an ISO image (depending on size). Those of us who don&#8217;t run one of the operating systems Dell provides support for appreciate them going through the trouble.<\/p>\n<p>However, newer updates for older systems and updates for newer systems seem to no longer provide standalone installers. In theory, Dell provides a quarterly packaged roll-up of all available updates on a pair of DVD images (CDU and SUU). Booting these and wasting about 10 minutes switching discs <i>should<\/i> get your system updated to the latest versions of all firmware without any additional steps.<\/p>\n<p>Unfortunately, the firmware for the R300&#8217;s ESM \/ BMC has not been on any SUU discs I&#8217;ve looked at, and the update is listed as &#8220;Critical Security Update&#8221; on Dell&#8217;s site (look under ESM on the R300&#8217;s downloads and drivers page). The only two formats it is available in are &#8220;Windows Update Package&#8221; and &#8220;Linux Update Package&#8221;. I figure that&#8217;s not a problem, as I can boot a Windows 7 recovery disk and then run the ESM update from a USB drive. Unfortunately, that doesn&#8217;t work. You get an error about &#8220;unsupported operating system&#8221;.<\/p>\n<p>Next, I boot the CDU DVD and select F3 for Advanced Options. This eventually gets me to a Linux shell prompt (CDU\/SUU operates under Linux). I mount the USB drive and execute the Linux version of the ESM update. That errors out with &#8220;Not compatible with your system configuration&#8221; for some unknown reason. Time to investigate further&#8230;<\/p>\n<p>Clicking on &#8220;Previous Versions&#8221; on the Dell page shows the previous version as 2.46 from 2009. Looking at the available formats, one is listed as &#8220;Hard-Drive&#8221;. Depending on the mood Dell is in when they create the kit, this could be anything from a freestanding binary that writes a floppy image to a drive, to creating an ISO file, or something that just unpacks into a bunch of loose files somewhere, perhaps then trying to run them (incorrectly) on the local system.<\/p>\n<p>I downloaded that file (link <a href=\"http:\/\/downloads.dell.com\/esm\/PER300BmcA02.exe\">here<\/a>) and discovered it created 3 useful files when it was executed:<\/p>\n<ul>\n<li>bmcfl16d.exe &#8211; a DOS-based flash utility<\/li>\n<li>bmccfg.def &#8211; some sort of configuration file<\/li>\n<li>bmcflsh.dat &#8211; the actual firmware to be flashed<\/li>\n<\/ul>\n<p>Now all I needed to do was to find newer versions of the last 2 files inside either the Linux or Windows installer. The Linux installer was a pain, and I quickly gave up on it. I had much better luck with the Windows version (link <a href=\"http:\/\/downloads.dell.com\/FOLDER00928577M\/1\/R300_ESM_Firmware_V8N40_WN32_2.50_A00.EXE\">here<\/a>). Despite being an EXE file, I was able to use <a href=\"http:\/\/www.winzip.com\">WinZip<\/a> 16.5 to open the file (browse to the directory where you downloaded the Dell update, then make sure you&#8217;ve selected &#8220;All files (*.*)&#8221; in WinZip&#8217;s Open Archive dialog). There&#8217;s a whole load of un-needed stuff in there (which doesn&#8217;t completely explain how a 655KB update turns into a 4800KB Windows binary). Find the bmccfg.def and bmcflsh.dat files and extract them on top of (replacing) the ones from unpacking the older download.<\/p>\n<p>I copied the 3 files onto a bootable USB stick and then used that to boot the R300 to be updated. Here are some screnshots of the various stages of the procedure (it&#8217;s very simple &#8211; just answer Y or N when asked if you want to perform the update):<\/p>\n<p><img decoding=\"async\" src=\"r300-bmcflash1.jpg\"><br \/>\n<img decoding=\"async\" src=\"r300-bmcflash2.jpg\"><br \/>\n<img decoding=\"async\" src=\"r300-bmcflash3.jpg\"><\/p>\n<p>If the firmware is already at the latest revision, the utility will tell you that and exit. This can also be used to double-check that the update was successful:<\/p>\n<p><img decoding=\"async\" src=\"r300-bmcflash4.jpg\"><\/p>\n<p>That&#8217;s all there is to it. If you want a pre-built .ZIP file with the flash utility and the 2.50 image, I have placed one <a href=\"r300_esm_fw_2_50_dos.zip\">here<\/a> for your convenience.<\/p>\n<h3>Advanced topics<\/h3>\n<p>The bmcfl16d.exe utility has a number of documented and undocumented additional features. You can use the -help option to get a list of the documented features. Before using one of these features when updating a system, be sure you know what you&#8217;re doing and have a fallback plan in case the update fails and you&#8217;re left with a non-operable system.<\/p>\n<p><img decoding=\"async\" src=\"r300-bmcflash5.jpg\"><\/p>\n<p>There is also an undocumented -advhelp (advanced help) option, which shows the additional undocumented options:<\/p>\n<p><img decoding=\"async\" src=\"r300-bmcflash6.jpg\"><\/p>\n<p>The above caution about knowing what you&#8217;re doing and having a fallback plan is doubly important if you try using any of the advanced options.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dell has generally been quite good about making firmware updates available in a variety of formats. In addition to the normal Windows and Linux versions, most patches are also available as a floppy \/ USB image or an ISO image (depending on size). Those of us who don&#8217;t run one of the operating systems Dell [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/582"}],"collection":[{"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=582"}],"version-history":[{"count":10,"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/582\/revisions"}],"predecessor-version":[{"id":592,"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/582\/revisions\/592"}],"wp:attachment":[{"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glaver.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}