Uploaded image for project: 'Image Builder'
  1. Image Builder
  2. COMPOSER-1933

osbuild: embedding firmware from LVFS.

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • None
    • False
    • None
    • False
    • Testable

      The Linux Vendor Firmware Service is a secure portal that allows hardware vendors to upload firmware updates, see https://lvfs.org

      This is where hardware makers can publish firmware for off-shelve peripherals to be consumed via fwupd.

      Sometimes, edge systems are disconnected from public networks, in this case embedding firmware updates into the images will help customers update their peripherals (modems, cameras, etc..).

       

      The osbuild pipeline code could look like:

      {
          "type": "org.osbuild.fwupd.firmware",
          "inputs": {
            "images": {
               "type": "org.osbuild.lvfs",
               "origin": "org.osbuild.source",
               "references": {
                    "com.synaptics.prometheus.0xDF.firmware": {
                          "version": "10.01.3273255"
                    }
               }
            },
          "options": {
            "destination": {
              "type": "vendor-firmware",
              "path": "/usr/share/fwupd/remotes.d/vendor/firmware",
            }
      
          },
      

      The LVFS CDN contents can be found here https://cdn.fwupd.org/downloads/firmware.xml.xz

      And this is a snippet example for the above reference:

      <component type="firmware">
      <id>com.synaptics.prometheus.0xDF.firmware</id>
      <name>Prometheus</name>
      <summary>Firmware for the Synaptics Prometheus Fingerprint Reader device</summary>
      <provides>
      <firmware type="flashed">8b06355d-849b-5125-85ec-6d02a20cf1ac</firmware>
      </provides>
      <url type="homepage">https://www.synaptics.com/products/biometrics</url>
      <project_license>LicenseRef-proprietary</project_license>
      <developer_name>Synaptics</developer_name>
      <categories>
      <category>X-FingerprintReader</category>
      <category>X-Device</category>
      </categories>
      <custom>
      <value key="LVFS::VersionFormat">triplet</value>
      <value key="LVFS::UpdateProtocol">com.synaptics.prometheus</value>
      </custom>
      <releases>
      <release id="7166" version="10.01.3273255" timestamp="1603152000" urgency="medium">
      <location>https://fwupd.org/downloads/39f476f9903f28d0d851af5b42883d5bf0eb0809c16a53ec05a1575efb698f5f-Synaptics-Prometheus-10.01.3273255-0xDF.cab</location>
      <checksum type="sha1" filename="39f476f9903f28d0d851af5b42883d5bf0eb0809c16a53ec05a1575efb698f5f-Synaptics-Prometheus-10.01.3273255-0xDF.cab" target="container">f3dcc0b904c45144b75a263916520f8360c10d0c</checksum>
      <checksum type="sha256" filename="39f476f9903f28d0d851af5b42883d5bf0eb0809c16a53ec05a1575efb698f5f-Synaptics-Prometheus-10.01.3273255-0xDF.cab" target="container">39f476f9903f28d0d851af5b42883d5bf0eb0809c16a53ec05a1575efb698f5f</checksum>
      <checksum type="sha1" filename="prometheus-10.01.3273255_prod.pkg" target="content">f46022d42e75dc258fdcd8e078dba590f4104c78</checksum>
      <checksum type="sha256" filename="prometheus-10.01.3273255_prod.pkg" target="content">744bda8ee5061880616f3a9b50b2df656d73efc239f15d73f16b516a3ae4a452</checksum>
      <description>
      <p>New features and enhancements:</p>
      <ul>
      <li>Support Linux system</li>
      </ul>
      </description>
      <size type="installed">412788</size>
      <size type="download">419398</size>
      </release>
      </releases>
      <requires>
      <firmware compare="regex" version="USB:0x06CB|HIDRAW:0x06CB">vendor-id</firmware>
      <id compare="ge" version="1.3.6">org.freedesktop.fwupd</id>
      </requires>
      </component>
      
      

      The above json for osbuild would result in installing the https://fwupd.org/downloads/39f476f9903f28d0d851af5b42883d5bf0eb0809c16a53ec05a1575efb698f5f-Synaptics-Prometheus-10.01.3273255-0xDF.cab file under /usr/share/fwupd/remotes.d/vendor/firmware

       

       

              Unassigned Unassigned
              majopela@redhat.com Miguel Angel Ajo Pelayo
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: