Updating Dell firmware from within XenServer Dom0
I’m bringing a new XenServer 6 pool online so having installed XenServer6 it was time to bring the hardware up to the latest patch and firmware levels.
Applying XenServer patches are quite simple via XenCentre, especially with the new rolling upgrade wizard, so no need to go into detail on that.
I needed to apply the latest firmware to the underlying hardware and update the Broadcom NIC drivers to the latest version which require a little more work.
Dell firmware pack
Now, the official way of applying firmware updates is to boot from DVD, but that would involve the data centre burning iso’s and connecting the KVM to my servers one by one – all rather alot of hassle.
Note: the following procedure modifies your Dom0 so would potentially make your server unsupported by Citrix
The XenServer Dom0 is a modified version of CentOS Linux, so we have the yum package manager at our disposal.
Dell provide a bootstrap script that configures yum to download the firmware management software (part of the Dell Openmanage suite)
First put your XenServer into maintenance mode to migrate all the running VMs off it.
Login to your server via ssh as root and run:
# wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash
This will configure yum with the Dell software repository. We can now download the required firmware upgrade software, and upgrade files:
# yum install dell_ft_install # yum install $(bootstrap_firmware)
We can then run the following command to view current firmware versions:
which gives the following output on my Dell R415:
BIOS = 1.2.5 ST2000NM0001 Firmware = ps04 PERC H200A Controller 0 Firmware = 07.03.05.00 Dell 32 Bit Diagnostics, v.5154A0, 5154.1 = 5154a0 SAS/SATA Backplane 0:0 Backplane Firmware = 1.07 NetXtreme II BCM5716 Gigabit Ethernet rev 20 (eth0) = 6.2.12 NetXtreme II BCM5716 Gigabit Ethernet rev 20 (eth1) = 6.2.12 Dell Unified Server Configurator, v.220.127.116.11, A00 = 18.104.22.168 System BIOS for PowerEdge R415 = 1.2.5
To upgrade the firmware, we run:
# update_firmware --yes
This will apply any firmware updates required, and will then require a reboot to complete.
Whilst this is a great way to apply multiple updates with a single reboot the only downside is that some more recent firmware files are not included by default (for example the latest BIOS) so we have to download and install these manually:
# wget http://downloads.dell.com/FOLDER00196858M/2/R415_BIOS_JW0MK_LN32_1.8.6.BIN # chmod +x R415_BIOS_JW0MK_LN32_1.8.6.BIN # ./R415_BIOS_JW0MK_LN32_1.8.6.BIN
Updating Broadcom NIC drivers
Whilst I had the server offline, I also wanted to upgrade the NIC drivers to the latest (supported) release.
The problem with drivers on Linux is that they are compiled against a particular kernel version, and installing drivers not compiled against the same kernel is asking for trouble. Citrix provide many “in box” drivers in the default XenServer 6 installation, however when newer drivers are released, you have two choices:
1. Download the XenServer DDK VM and download and compile the drivers yourself against XenServer kernel, then copy across onto Dom0 and install.
2. Download the ready-compiled drivers that match the kernel version you are using.
Things are further complicated when hotfixes change the kernel version of Dom0. This means that new drivers have to be supplied compiled against each possible kernel version. As you can see from this post, a recent XenServer hotfix changed the XenServer 6 kernel which means any addition drivers also have to be compiled against this new kernel.
My Dell R415 servers have on-board Broadcom NetXtreme NICs that use the Tigon3 chipset drivers, downloaded from
The KB article provides instructions on how to mount the iso and install the drivers. Once completed, you can check the version using:
# modinfo tg3
filename: /lib/modules/22.214.171.124-0.7.1.xs126.96.36.1991.170662xen/extra/tg3.ko firmware: tigon/tg3_tso5.bin firmware: tigon/tg3_tso.bin firmware: tigon/tg3.bin version: 3.120h
Leave a comment
You must be logged in to post a comment.