Video Screencast Help
Search Video Help Close Back
to help
New in the Rewards Catalog: Vouchers for "Symantec Technical Specialist" and "Symantec Certified Specialist" exams.

Applying DUPs in Linux Automation with Deployment Solution for Dell 3.0

Updated: 07 Jul 2009
lordmithrandir's picture
+1 1 Vote
Login to vote

A DUP or Dell Update Package is a package provided by Dell to update the firmware or drivers on a system. These packages can be found on Dell's support site, or can be downloaded using the Dell Configuration Utility that comes with DS for Dell 3.0. In past releases of Deployment Solution for Dell Servers the DUPs were only applied post OS deployment. The DTK included with DS for Dell 3.0 includes support for installing DUPs while in the pre-OS environment. This way the BIOS, DRAC, BMC, and RAID firmwares can all be updated before the OS is ever deployed.

Overview

This article will explain how to download DUPs using the Dell Configuration Utility, and run them on servers using Linux automation. For this article I will use PXE. If you don't use PXE in your environment some of these steps may be different (I'll try to point them out) but you should able to adapt this article to your situation.

Prerequisites

In this article I presume you have already installed Deployment Solution for Dell Servers 3.0. I also presume you have installed the x86 Linux files and set up a Linux automation pre-boot image. The installation of Deployment Solution for Dell Servers 3.0 should have created a PXE image called "Dell Linux v3". If this image does not exist you will need to use the Configuration Wizard that comes with DS for Dell Servers to create it. Note: If you are not using PXE you don't need to worry about the creation of the Dell Linux v3 image, you just need to make sure you create your boot disks/automation partitions with the Dell extensions.

Preparing the Linux image

First we need to make some modifications to the Linux image. By default the image is 32 MB, and is not big enough to allow us to install DUPs. The DUPs require some work space in order to do their work. I've created an alternate rootfs image file with the same contents as the rootfs image file that comes with DS. The only difference is that it is 128 MB, and has a few more Linux utilities that are required by the DUPs. You could just overwrite the rootfs that comes with DS, but I don't recommend that. Instead it can be added to the Dell OEM extensions that are installed with the DS for Dell Servers 3.0 add-on. This way the new rootfs will only affect the "Dell Linux v3" image (and any other images you create that use the Dell OEM extensions) and not your other Linux images. I must also point out that this new rootfs shouldn't have any adverse consequences. You will still be able to add drivers, and modify your Linux images though Boot Disk Creator just as you always have. To copy over the new rootfs to the following:

  1. Download the file DUPsInLinuxAutomation.zip and unzip it
  2. Inside the file you should find three files, two of these will be used later, we'll use the file named rootfs right now.
  3. Copy rootfs to [Deployment share]\Bootwiz\oem\Dell\Linux\x86\@dot@
Note: I have tested this rootfs on several different servers and haven't run into any problems. However it is possible that some DUPs I haven't tested require Linux utilities I haven't included. If you run into any such examples send me a message and I'll create a new rootfs with the missing Linux utility. It will be fairly obvious by looking at the output of the DUP (which is captured in the system's log file, details on where that is later) that a utility is missing.

You also need to increase the size of the ramdisk, so there is room for this larger rootfs image.

  1. Copy the file [Deployment share]\Bootwiz\platforms\Linux\x86\Misc\pxelinux.cfg to the folder [Deployment share]\Bootwiz\oem\Dell\Linux\x86\@dot@\pxelinux.cfg, and rename the file to "default" (that isn't a typo, the folder is named pxelinux.cfg, and the file name is default with no extension)
  2. Now edit [Deployment share]\Bootwiz\oem\Dell\Linux\x86\@dot@\pxelinux.cfg\default with a text editor
  3. Change the entry ramdisk_size=32768 to ramdisk_size=131072
Note: These instructions explain how to edit this file for PXE images, if you are using boot disks replace pxelinux.cfg for isolinux.cfg, or if you are using embedded partitions replace pxelinux.cfg with syslinux.cfg.

Now you need to regenerate your Linux image so the new rootfs and the larger ramdisk size will take effect. The step is only for PXE images, if you are using boot disks you'll have to create a new boot disk, and if you are using embedded partitions you will have to uninstall the old embedded partition and install a new embedded partition. To regenerate your PXE image do the following:

  1. Open PXEConfig
  2. Select the image Dell Linux v3 and click edit
  3. Click Edit Boot Image and click the Next button until the image regenerates
  4. Click Finish, then Ok, and then Save

Importing the DUP jobs and copying the new script

I have created a simple script and some jobs to run the DUPs. They will look similar in format to the scripts and jobs that ship with the DS for Dell 3.0 Add-on. The jobs should be imported to the folder "1. Pre OS-Deployment Jobs" off the "Deployment Solution for Dell Servers v3.0" folder.

First we'll import the bin file, do the following

  1. There should be two more files we haven't used, LinuxPreOSDupJobs.bin and apply_dup.sh, from the zip file you downloaded earlier
  2. Open the DS console
  3. Click File > Import/Export > Import Jobs
  4. Browse to where you extracted LinuxPreOSDupJobs.bin and select it

    Figure 9

  5. Check the "Import Jobs to Folder:" box and browse to the "1. Pre OS-Deployment Jobs" folder off the "Deployment Solution for Dell Servers v3.0 Linux" folder.
  6. Click OK

Now we need to set the automation environment for the jobs. By default they are imported and set to the default Linux automation, menu option 131 (usually called Linux Managed). We want the jobs to run in the "Dell Linux v3" environment though so we can use the larger image size we just added, and have the DTK support we need.

  1. Browse to the jobs you just imported
  2. Start with the first job, select the Run Script task and click modify
  3. Click next, and change the drop down under the "Automation pre-boot environment" radio button to "Dell Linux v3 (32-bit)"
  4. Click Finish
  5. Repeat this process for the remaining 4 jobs

Now we'll copy the script to the correct location

  1. Copy the file apply_dup.sh to [Deployment share]\Dell\ascripts\linux

Downloading DUPs

At this point everything is set. All you have to do is download the DUPs. You could use the Dell support site to download them, but a much easier interface is already provided in the Configuration Utility included with DS for Dell Servers. To access it do the following:

  1. Open the Configuration Utility from the Deployment Console by clicking on Tools &gt Dell Tools &gt Configuration Utility
  2. Click the "Get DUP Catalog" button, by default the DUP catalog will be downloaded from the Internet. If your DS server doesn't have access to the Internet you can use a Dell SUU CD. However I recommend downloading the catalog from the Internet if at all possible so you get the latest updates.
  3. Now you can browse for the DUPs you want to download by server model. They are organize according to OS (the OS the DUP runs in) so for this article we only want DUPs in the "Red Hat Linux" category. Select the DUP you want to download and click the "Download DUP" button.
    Note: You can only apply firmware DUPs in automation, there wouldn't be much point in applying a driver update in Linux automation since the changes would be lost as soon as you rebooted.
    Note: If you choose not to use the Configuration Utility and download the DUPs from the Dell support site, you will have to manually copy them into the directories where the scripts expect to find them. The root of the directory structure is [Deployment share]\Dell\Toolkit\Systems. Off the Systems folder there is a directory for each server model. The directories are created dynamically each time a job is run on a server model type for the first time, or each time action is taken on a server model in one of the utilities (such as downloading DUPs). If the server model directory does not exist for the model you have a DUP for, you can either copy an existing directory and rename it (so you get all the subdirectories), or run a job on a server of that model and the directory structure will be created automatically. From the model directory the DUPs are broken down into type then OS. So if I had a Red Hat Linux BIOS DUP for a PE2950 I would put it in: [Deployment share]\Dell\Toolkit\Systems\PE2950\BIOS\DUPRH. The RAID category is further divided between drivers and firmware, so a Red Hat RAID firmware update for the PE2950 would go in: [Deployment share]\Dell\Toolkit\Systems\PE2950\RAID\DUPRH\FIRMWARE.

Installing DUPs on the clients

Now you are ready to run the jobs! Simply drag and drop the DUP jobs onto the servers you have downloaded DUPs for. If you've followed the above steps correctly then your DUPs should run successfully. Should you run into any problems you can check the server logs. They are located in: [Deployment share]\Dell\alogs and are named after the DS ID of the system. This log contains messages logged by the scripts, as well as the output from running the DUP itself. Also it may be useful to point out that the user modification section of each run script task allows you to specify command-line parameters. I'll list the valid parameters below (I took these from a BIOS DUP, they may be different for other DUPs, but I think they are fairly general).

Option Description
-h,--help Display command-line usage help
-c Determine if the update can be applied to the target system
-f Force a downgrade to an older version (*)
-q Execute the update package silently without user interaction
-r Reboot if necessary after the update (*)
-v,--version Display version information
--list Display contents of package (+)
--extract (path) Extract files to specified path (+)
--rebuild Rebuild package to support multiple kernels (+)

* Only takes effect if used with -q
+ Can be used only before extracting the package

Support: User-contributed tools on the Juice are not supported by Altiris Technical Support. If you have questions about a tool, please communicate directly with the author by visiting their profile page and clicking the 'contact' tab.