Presentation is loading. Please wait.

Presentation is loading. Please wait.

The firmware-tools project Matt Domsch Michael Brown.

Similar presentations


Presentation on theme: "The firmware-tools project Matt Domsch Michael Brown."— Presentation transcript:

1 The firmware-tools project Matt Domsch Michael Brown

2 2 PG Linux Eng Overview BIOS and Firmware updates history Problem Vision & Scope Components of an SCM system for BIOS and Firmware Putting it together

3 3 PG Linux Eng BIOS Update History In the beginning there was chaos...

4 4 PG Linux Eng BIOS Update As Linux gained marketshare, vendors released native executables to flash BIOS and Firmware. As this evolved, vendors packaged firmware and tools together in shell archives to create single executables for updates. – Key Point: Even though all these methods work, they are still effectively manual processes. – Key Point: Vendors typically only “certify” a very limited subset of linux distributions Later, vendors released point solutions to wrap all of their individual updates and distribute them across multiple machines. – Key Point: Even though vendors provided automation, they were silos, with organizations needing to set up and maintain multiple software stacks to service each vendor's equipment.

5 5 PG Linux Eng Problem Few sysadmins ever upgrade their BIOS or firmware, unless... Tech support makes them Why? Existing methods are still too difficult – Per-hardware-vendor – Per OS / Distribution – Per Management Tool – Updates posted on web sites designed for 1-to-1 human support – Often a manual process

6 6 PG Linux Eng Vision & Scope Provide infrastructure to seamlessly integrate change management for BIOS and Firmware into native Linux change management infrastructure used by the OS and apps. – Use yum/up2date/apt/emerge/etc to pull down RPMs/DEBs/ebuilds with BIOS and Firmware updates. Multi-Distribution support. Multi-hardware-vendor support. Common Packaging Format guideline to IHVs Common Inventory/Execution Framework Plug in existing flash apps, no need to rewrite everything. Use for flash-resident and runtime-loaded firmware

7 7 PG Linux Eng Architecture Firmware-tools Default Plugins PCI bootstrap... IHV Plugin BIOS IHV Plugin RAID IHV Plugin... IHV Payload BIOS for 1 system IHV Payload RAID for 1 card inventory_firmware apply_updates

8 8 PG Linux Eng Components of SCM for BIOS and Firmware Payload – This is the actual BIOS or Firmware image itself. Typically a.dat file that is flashed to the device. Inventory – The process of finding all of the components on the system and enumerating them using a pre-defined naming scheme. Eg. PCI Devices (pci_firmware_ven_0x1359_dev_0x2468) Execution – The act of actually writing bits into the flash media. Bootstrap – Special case of Inventory where versions do not matter, just provide list of hardware that “might” be on system. Fed into repository system.

9 9 PG Linux Eng Payload Packaging BIOS example given, same concept works for eg. DEB “Provides” lines are key to functionality system_bios(ven_0x1028_dev_0x0182) pci_firmware(ven_0x8086_dev_0x2590_subven_0x1028_subdev_0x0182) %post script calls standardized infrastructure, so %post is not specific to this update Summary: BIOS upgrade package for System: %{system_shortname} Name: system_bios_%{system_shortname} Version: %{version} Release: 14%{?revision:.%{revision}}... Requires: firmware-addon-dell >= 1.0 Provides: system_bios(ven_%{vendor_id}_dev_%{device_id}) = %{version}... %post apply_updates --rpm -y || true Sample BIOS RPM spec file

10 10 PG Linux Eng Inventory and Execution Inventory is run via plug-in system. Basic binary will call out to all installed plugins to generate final system inventory. Execution is also plug-in driven. Automated updates: – Inventory system, then scan local repository for matching firmware with newer version. – YUM/Up2date/etc take care of automatically pulling down latest content. – No need to reinvent the wheel.

11 11 PG Linux Eng Use # set up repos wget -q -O - \ http://linux.dell.com/yum/software/bootstrap.sh | bashhttp://linux.dell.com/yum/software/bootstrap.sh wget -q -O - \ http://repo.fwupdate.com/repo/firmware/bootstrap.sh | bashhttp://repo.fwupdate.com/repo/firmware/bootstrap.sh # download and install firmware tools yum -y install firmware-addon-dell # download and install firmware updates yum -y install $(inventory_firmware -b) apply_updates

12 12 PG Linux Eng Use / Participate / Develop Hardware and System Vendors Write tools and plug-ins for your firmware Publish tools and firmware in an online repository Distro developers Port / maintain firmware-tools for your distro Help packagers SysAdmins – Try it! – BIOS for 216 Dell systems available today – Fedora {3,4,5,devel}, RHEL{3,4}, SLES{9,10} now – others with your help

13 13 PG Linux Eng Resources Firmware-tools home page http://linux.dell.com/firmware-tools firmware-tools-devel@lists.us.dell.com http://linux.dell.com/firmware-tools Fwupdate payload repository http://fwupdate.com #fwupdate on FreeNode http://fwupdate.com


Download ppt "The firmware-tools project Matt Domsch Michael Brown."

Similar presentations


Ads by Google