Обновление прошивки периферийных устройств через fwupd

Версия: 2.4.4
Последнее обновление: 23.07.2026

Обзор

Цель данного руководства — описать, как настроить обновление прошивки fwupd, поддерживаемое пользовательским интерфейсом ChromeOS.

блок-схема fwupd

Фон

fwupd — это демон с открытым исходным кодом, который выполняет обновление микропрограмм периферийных устройств и других системных компонентов в системах на базе Linux. fwupd — это механизм, с помощью которого ChromeOS обновляет микропрограммы периферийных устройств.

Полезные нагрузки обновления fwupd представляют собой файлы .cab , хранящиеся в файловой системе Linux Vendor Firmware Service (LVFS). В Linux обновления fwupd становятся широко доступными после загрузки в LVFS. Однако для того, чтобы обновления стали доступны в ChromeOS, команда ChromeOS будет отдельно проверять и добавлять новые обновления в список разрешенных, чтобы обеспечить оптимальное взаимодействие с пользователем.

fwupd Process

Следующая информация применима только к периферийным устройствам, сертифицированным WWCB, образцы которых были отправлены в компанию Allion.

Если текущая версия fwupd в ChromeOS еще не поддерживает это периферийное устройство, следуйте инструкциям, приведенным в вариантах использования 1 и 2. Если текущая версия fwupd в ChromeOS уже поддерживает это периферийное устройство, перейдите к варианту использования 2 .

Вариант использования 1: Текущая версия fwupd в ChromeOS не поддерживает данное периферийное устройство.

Текущая версия fwupd в ChromeOS пока не поддерживает это периферийное устройство.

изображение

  1. ODM-производители и OEM-производители будут напрямую сотрудничать с поставщиками чипсетов для внесения изменений в кодовую базу fwupd.

    1. Обратитесь к руководству по интеграции fwupd (второй шаг — использование fwupd) .
    2. Изменения в плагине: пример 1 , пример 2
    3. Сопоставление VIDs:PIDs в файле .quirk : пример 3
      • В качестве альтернативы изменениям в файле quirk, если USB-периферийное устройство поддерживается существующим плагином, вы можете следовать спецификации DS20 .
    4. Изменения в плагине и особенностях, внесенные в результате этого, должны быть объединены сопровождающими fwupd.
    5. Дождитесь официального релиза fwupd (например, версии 1.8.4) и запишите номер версии.
  2. Выпуски fwupd регулярно дублируются в ChromeOS и будут соответствовать графику выпуска Chromium .

  3. Если вы отправляете изменения в плагины, исправления ошибок или изменения в файлы quirk после даты окончания срока действия заморозки функций для предстоящего релиза Chromium, но эти изменения имеют высокий приоритет для следующего релиза ChromeOS, то:

    1. Перейдите в раздел «Отслеживание проблем партнеров» .
    2. Войдите в систему, используя свою учетную запись партнера Google.
    3. Чтобы создать сообщение об ошибке в вашем компоненте ( ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd ), нажмите кнопку «Создать проблему» в меню слева. Это уведомит команду ChromeOS о необходимости обновить версию fwupd в ChromeOS.

      В сообщении об ошибке укажите следующую информацию:

      1. Название ошибки:

        [PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
        
      2. Описание ошибки:

        1. Номер версии fwupd, который включает в себя изменения плагина:
          • Какие функции оно добавляет?
          • Какие ошибки исправлены?
          • Какое оборудование оно поддерживает?
        2. Марка/модель устройства
        3. VID, PID
        4. GUID (глобальный уникальный идентификатор)
      3. Пример скриншота:

        Скриншот ошибки обновления fwupd

  4. Ошибка будет рассмотрена, и инженеры Google включат выборочную версию fwupd в ChromeOS.

  5. Обновленная версия fwupd будет добавлена ​​в тестовый канал после утверждения списка изменений.

    • Оставьте комментарий к ошибке, чтобы узнать, какая версия сборки ChromeOS содержит обновленную версию fwupd. Вы также можете использовать CL Finder для поиска версии сборки в консоли партнеров ChromeOS (CPCon) (требуется учетная запись корпоративного партнера Google, пожалуйста, свяжитесь с TAM для получения доступа к CPCon).

Вариант использования 2: Текущая версия fwupd в ChromeOS поддерживает это периферийное устройство.

Текущая версия fwupd в ChromeOS уже поддерживает это периферийное устройство, и доступна новая прошивка.

изображение

  1. Создайте файл с расширением .cab .

    Вся прошивка загружается в виде архива cabinet. Помимо исполняемого файла прошивки, LVFS ожидает, что архив будет содержать как минимум один файл .metainfo.xml , описывающий целевое устройство и прошивку. Создать архив cabinet можно с помощью gcab (библиотека для создания файлов cabinet) в Linux.

  2. Загрузите протестированное и окончательное обновление прошивки (файл .cab ) в LVFS.

    1. Убедитесь, что обновление доступно в стабильной удаленной версии.

      Если приложение доступно в закрытом , заблокированном или тестовом удаленном репозитории, оно не будет добавлено в зеркало ChromeOS.

    2. Обновления отмечены как подтвержденные в LVFS на основании подписанного отчета .

      Убедитесь, что тесты устройства добавлены.

      • Пример JSON-файла , поддерживаемого тестовой средой для тестирования устройств.
    3. Если это первая загрузка прошивки, убедитесь, что в стабильной удаленной папке LVFS доступны как минимум две прошивки: базовая (для проверки понижения версии) и новая (для проверки обновления).

  3. Обновление прошивки следует протестировать на ChromeOS с помощью подписанного отчета .

    1. Загрузите сертификаты в LVFS, чтобы связать тестируемое устройство с вашей учетной записью.

      1. Войдите в LVFS , используя свою учетную запись.
      2. Нажмите на значок «Человек» в правом верхнем углу или перейдите по ссылке https://fwupd.org/lvfs/profile{:.external}.
      3. Нажмите на «Настройки профиля» .
      4. Найдите клиентский сертификат на своем Chromebook.

        • Примечание : Chromebook должен быть в режиме разработчика.
        • Запустите оболочку разработчика ChromeOS, нажав Ctrl + Alt + T.
        • Тип:

          shell
        • Перейдите в каталог /var/lib/fwupd/pki :

          cd /var/lib/fwupd/pki
        • Скопируйте файл client.pem в папку на вашем Chromebook, например: Downloads .

          cp client.pm /home/chronos/user/MyFiles/Downloads/
    2. В разделе «Сертификаты клиентов» на веб-сайте LVFS нажмите кнопку « Загрузить сертификат » и загрузите сертификат.

      1. Повторите эти шаги на каждом Chromebook, который вы используете для тестирования (вы можете загрузить несколько сертификатов для разных компьютеров).
    3. Протестируйте обновление и загрузите подписанные отчеты через тестируемое устройство.

      1. Для тестирования и загрузки отчетов выполните следующие команды и пройдите аутентификацию при появлении соответствующего запроса.

        fwupdmgr refresh
        fwupdmgr update
        fwupdmgr report-history --sign
      2. Примечание : Если вы уже загружали отчеты без флага --sign , вы можете использовать команду fwupdmgr report-history --sign --force для повторной загрузки того же отчета в LVFS.

        fwupdmgr report-history --sign --force
        • Для просмотра ответа сервера можно использовать параметр --verbose .

          fwupdmgr report-history --force --verbose
      3. В диалоговом окне подтверждения нажмите «Да» .

        • Это должно загрузить подписанный отчет в ваш аккаунт.
        • Для подтверждения перейдите по ссылке https://fwupd.org/lvfs/dashboard и в разделе «Главная» в левом верхнем углу нажмите «Подписанные отчеты» .
    4. Убедитесь, что версия прошивки на LVFS имеет подписанные отчеты.

      • Найдите периферическое устройство в LVFS.
      • Если загруженный подписанный отчет был создан после успешного обновления версии микропрограммы на периферийном устройстве с помощью Chromebook, то в разделе « Протестировано пользователем» будут указаны версия ChromeOS, версия fwupd и название объекта. См. пример .
      • Убедитесь, что в настройках Release Gating отображается зеленая галочка «Доступно для пользователей ChromOS».
    5. Начиная с обновления M126, обновления прошивки будут доступны пользователям ChromeOS только в том случае, если прошивка имеет подписанные отчеты (протестированные с ChromeOS) в файловой системе LVFS.

      • Через 24 часа пользователи могут подключить периферийное устройство к Chromebook и обновить прошивку через пользовательский интерфейс ChromeOS. Перейдите в Настройки > О ChromeOS > Обновления прошивки .
      • Примечание: Обновления прошивки будут доступны при условии, что все необходимые изменения плагинов доступны в ChromeOS для данного этапа разработки.

Более подробную информацию о подписанных отчетах можно найти на сайте LVFS .

Часто задаваемые вопросы

В: Какой Chromebook поддерживает fwupd?

Все устройства ChromeOS с версией M101 или выше.

В: Как узнать, какая версия fwupd интегрирована с ChromeOS?

  1. Откройте chrome://system через браузер (версия M109 или более поздняя).
    1. Перейдите в папку fwupd_version .
  2. Или через режим разработчика, корневую консоль.
    1. Введите fwupdmgr --version
    2. Найдите runtime org.freedesktop.fwupd

В: Сколько времени занимает процесс обновления fwupd?

Команда `fwupd uprev` следует графику выпуска Chromium , поэтому убедитесь, что запрос на обновление `fwupd uprev` отправлен до даты окончания срока действия функции ветки `feature freeze`.

В: Где я могу получить более подробную информацию о графике выпуска ChromeOS?

В расписании релизов Chromium .

В: Как перевести Chromebook в режим разработчика?

  1. Выключите Chromebook.
  2. Удерживайте клавиши Esc + Refresh и нажмите кнопку питания.
    • Примечание : На некоторых Chromebook это делается с помощью комбинации клавиш Esc + → (клавиша со стрелкой вправо) и нажатия кнопки питания.
  3. Устройство включится, и вы должны увидеть экран/режим восстановления.
  4. Затем нажмите Ctrl + D , а затем Enter , чтобы подтвердить.
    • Примечание : Если вы нажмете любую клавишу до Ctrl + D , устройство не перейдет в режим разработчика.
  5. Устройство перезагрузится, издаст звуковой сигнал, и вы увидите сообщение «Ваша система переходит в режим разработчика».
  6. Примерно через 30 секунд вы увидите сообщение «Подготовка системы к режиму разработчика».
  7. В конечном итоге (это может занять от 10 минут до более часа в зависимости от размера диска) устройство перезагрузится и отобразит стандартный экран приветствия.
  8. Чтобы открыть командную строку, нажмите Ctrl + Alt + → (клавиша со стрелкой вправо).
    • Примечание: На некоторых Chromebook это сочетание клавиш Ctrl + Alt + клавиша обновления .
    • Чтобы вернуться в обычный режим просмотра в браузере, нажмите Ctrl + Alt + ← (клавиша со стрелкой влево).
  9. Более подробную информацию можно найти в [Режиме разработчика]

В: Как перевести Chromebook в обычный режим (то есть отключить режим разработчика)?

Перезагрузите устройство и нажмите пробел на экране обновления прошивки.

Более подробную информацию можно найти в [Режиме разработчика].

В: Поддерживает ли ChromeOS понижение версии через fwupd?

Нет. Если производственная версия fwupd или прошивка выйдет из строя, вам придётся удалить подписанный отчёт через https://fwupd.org/lvfs/dashboard. Важно проводить тестирование каждый раз, когда вы отправляете изменения в плагин и/или у вас доступна новая прошивка. Убедитесь, что базовая версия прошивки всегда доступна на стабильном удалённом сервере LVFS.

В: Как узнать, какие версии ChromeOS поддерживают какие обновления fwupd?

Вы можете оставить комментарий к ошибке, указав, для какой версии сборки были внесены изменения, и инженеры Google смогут предоставить вам эту информацию. Вы также можете использовать CL Finder для поиска версии сборки в консоли партнеров ChromeOS (CPCon) (требуется учетная запись корпоративного партнера Google — свяжитесь с TAM для доступа к CPCon). Можно также сопоставить версию сборки с ChromeOS Partner Frontend (CPFE), чтобы узнать, к какому этапу она соответствует.

В: Как создать учетную запись LVFS?

См. документацию по созданию учетной записи LVFS.

В: Как загрузить CAB-файлы в LVFS?

См. документацию по загрузке прошивки LVFS.

В: Как убедиться, что прошивка предназначена для конкретного периферийного устройства?

Это возможно с помощью наиболее известного файла конфигурации. Для получения дополнительной информации см. раздел «Наиболее известная конфигурация fwupd».

В: Как я могу проверить обновление fwupd перед загрузкой в ​​LVFS?

После отправки изменений в плагин и включения выборочной версии fwupd в тестовый образ ChromeOS вы сможете получить доступ к тестовому образу через ChromeOS Partner Frontend (CPFE) (требуется учетная запись корпоративного партнера Google — свяжитесь с TAM для получения доступа к CPFE).

Обратитесь к документации LVFS по тестированию прошивки на ChromeOS . В качестве альтернативы вы также можете запустить тесты fwupd с помощью Moblab .

В: Каким образом пользователь будет уведомлен о наличии обновления прошивки для своего периферийного устройства?

Пользователь получит уведомление о наличии обновления в зависимости от срочности, присвоенной обновлению в LVFS. Поведение будет следующим:

Срочность Поведение при получении уведомлений
Низкий Пользователь не будет уведомлен, ему придется проверять наличие обновлений вручную.
Середина
Высокий
Критический Уведомления будут отображаться при каждой загрузке до завершения обновления.

В: Происходят ли обновления fwupd автоматически?

Нет. Все обновления fwupd инициируются пользователем и не происходят во время загрузки или автоматически.

В: В чём преимущество спецификации DS20?

В настоящее время проверено только для USB-периферийных устройств. Если вы используете тот же протокол, что и на другом оборудовании, он будет работать только с дескриптором DS20.

Производители могут поместить данные файла с описанием особенностей в дескриптор USB, а не в проект fwupd. Таким образом, USB-устройство вставляется, fwupd считывает данные дескриптора, сопоставляет плагин и перечисляет устройство, без необходимости заставлять производителя отправлять патч в fwupd и ждать обновления fwupd.

В: Является ли DS20 альтернативой для изменения только файлов?

Да; в ​​большинстве случаев для будущего оборудования достаточно просто добавить VID и PID в существующий плагин, а не вносить изменения в код. Если же требуются изменения в коде, то поставщик должен отправить изменения в плагин в fwupd.

Приложения

  1. Руководство для разработчиков
  2. Поддержка разработчиков
  3. Введение в Git и Gerrit для участников проекта CROS.
  4. Внесение изменений в исходный код
  5. Процесс проверки/утверждения Gerrit
  6. Руководство по интеграции fwupd

История изменений

Дата Версия Примечания
2026-07-23 2.4.4 Обновите ссылку на руководство по интеграции fwupd.
2025-07-23 2.4.3 Обновить рабочий процесс варианта использования 1
2024-10-18 2.4.2 Обновите изображения и шаги рабочего процесса fwupd для загрузки клиентского сертификата.
2024-07-23 2.4.1 Обновления форматирования.
2024-06-26 2.4 Обновление рабочего процесса fwupd uprev (вариант использования 1). (Опубликовано вместе с версией 2.4.1)
2024-06-17 2.3 Обновление рабочего процесса подписания отчетов. (опубликовано вместе с версией 2.4.1)
2024-02-01 2.2 Переиздание на новой платформе; незначительные изменения в формулировках.
2023-10-12 2.1 Добавлены изображения в Вариантах 1 и 2, руководство по интеграции fwupd размещено на сайте партнера.
2022-08-14 2.0 Первая публикация партнерского сайта