Oss/Firmware Tools/Firmware-tools announcement

From DellLinuxWiki

Jump to: navigation, search


WHAT are we announcing

This announcement consists of three projects: firmware-tools; the Dell plugin to firmware-tools, called firmware-addon-dell; and dell-repo-tools.

The purpose of the firmware-tools project is to provide a new method to perform system BIOS and Firmware updates in a much more user-friendly way than current update methods. It provides infrastructure that can be used by multiple system vendors and device types. The firmware-tools project is located at http://linux.dell.com/firmware-tools/, and is available in the Dell yum repository at http://linux.dell.com/repo/software/. This project is dual-licensed under GPL and OSL. Source is available in the SRPM in the repository.

The purpose of firmware-addon-dell is to plugin to the firmware-tools infrastructure and provide update capabilities for Dell systems. Firmware-addon-dell is available as an RPM in the Dell yum repository, listed above. This project is available under a GPL/OSL dual-license. Source is available in the SRPM in the repository.

The purpose of the dell-repo-tools project is to create a repository of BIOS and Firmware payload RPMs. The primary tool here is mkbiosrepo.sh, which mirrors the public Dell FTP site to your local system and converts the firmware and BIOS images posted there into payload RPMs. dell-repo-tools is available as an RPM in the Dell yum repository, listed above. Today, the mkbiosrepo.sh script can create BIOS update RPMs for Dell PowerEdge Server systems, Dell Precision workstations, and most Dell desktop and laptop systems. It does not currently provide support for add-on PCI card firmware, such as RAID cards. The dell-repo-tools RPM is available in the Dell yum repository, listed above. This project is available under a GPL/OSL dual-license. Source is available in the SRPM in the repository.

HOW does it work

This new method of BIOS updates uses BIOS images packaged in RPM format. It separates out the tools used to install the updates into separate RPMs, and uses dependency information to ensure that all the relevant tools are installed to do the update. We provide all of these tools in a yum repository. This means that after you have the initial set of RPMs installed, further updates to BIOS can be made automatically along with the rest of your software maintenance.

Finally, we provide a master tool (firmware-tools) that provides the infrastructure for all this to work.

WHY are we releasing this

We are releasing this project in the hopes of moving the industry towards a more scalable and friendly way to update BIOS and Firmware for systems.

HOW do I get going


The steps to get up and running are simple:

  • Bootstrap the Dell YUM Repository:
 # wget -q -O - http://linux.dell.com/repo/software/bootstrap.sh | bash

More details here: http://linux.dell.com/repo/software/

  • Install firmware-addon-dell
 # yum install firmware-addon-dell

This will automatically also pull in libsmbios, firmware-tools, and other necessary components.

Payload Repository

Now you have 2 choices. The actual BIOS and firmware payloads must come from somewhere. You can either use a tool to create your own local repository, or you can use the publicly available repository at fwupdate.com. At this time, the firmware-tools project and process is not officially Dell-supported, thus there is no payload repository hosted on a dell.com site.

Creating your own local payload repository

  • Install dell-repo-tools
# yum install dell-repo-tools

This provides the scripts necessary to create the mirror of ftp.dell.com, extracts the BIOS payloads, and creates payload RPMs.

  • Create the mirror and RPM repository
 $ mkbiosrepo.sh -m <mirror_dir> -o <output_dir> -d

-m <DIR> : directory to contain dell.com mirror  (~8GB free space needed)
-o <DIR> : output directory
-d       :  enable debugging.
-l <DIR> : dir to contain RPM repository when done
   if -l not given, it will use output_dir/repomirror

  • Post the RPM repository to a web server somewhere
  • Create a yum config file in /etc/yum.repos.d/yourserver.repo for your target systems, that looks like:
name=Firmware updates

Using the payload repository at fwupdate.com

Follow the instructions at http://fwupdate.com/ to configure your system to pull from that repository. fwupdate.com uses the dell-repo-tools package to create and maintain the repository, and has made it publicly available.

DISCLAIMER: The fwupdate.com is in no way supported by Dell. If it breaks, you get to keep both pieces. You have been warned. Questions should go to firmware-tools-devel@lists.us.dell.com.

Finishing the installation

  • Install the BIOS Payload RPMs for your system
    • For Fedora and other YUM-using systems:
 # yum install $(bootstrap_firmware)
    • For RHEL and other up2date-using systems:
 # yum install $(bootstrap_firmware -u)
  • Apply the BIOS updates:
 # update_firmware
  • Reboot

A reboot is necessary, as the BIOS flash is actually done during POST following a reboot.


Please note that this method is unofficial and unsupported by official Dell Technical Support. The only support is via the website, http://linux.dell.com/firmware-tools/, the mailing list, firmware-tools-devel@lists.us.dell.com, and IRC channel #fwupdate at FreeNode. We hope that, by releasing this, we can get valuable feedback which we can take to our Engineering and Marketing teams to affect future project directions, but there is no guarantee associated with this.

WHO is behind this

This project was developed by Michael Brown and Matt Domsch at Dell.

Personal tools