Версия: 2.4.3
Последнее обновление: 23.07.2025
Обзор
Целью данного руководства является описание настройки обновлений прошивки fwupd, поддерживаемых пользовательским интерфейсом ChromeOS.
Фон
fwupd — это демон с открытым исходным кодом, который выполняет обновление прошивок периферийных устройств и других систем в системах на базе Linux. fwupd — это механизм, с помощью которого ChromeOS обновляет прошивку периферийных устройств.
Полезные данные обновления fwupd состоят из .cab
-файлов, хранящихся в Linux Vendor Firmware Service (LVFS). В Linux обновления fwupd могут быть доступны широкому кругу пользователей после загрузки в LVFS. Однако для того, чтобы обновления стали доступны в ChromeOS, команда ChromeOS будет отдельно проверять и добавлять новые обновления в разрешённый список, чтобы обеспечить оптимальную работу пользователей.
Процесс fwupd
Следующее применимо только к периферийным устройствам, сертифицированным WWCB, образцы которых были отправлены в Allion.
Если текущая версия fwupd в ChromeOS еще не поддерживает периферийное устройство, то следуйте инструкциям, приведенным в вариантах использования 1 и 2. Если текущая версия fwupd в ChromeOS уже поддерживает периферийное устройство, то перейдите к варианту использования 2 .
Вариант использования 1: Текущая версия fwupd в ChromeOS не поддерживает периферийное устройство
Текущая версия fwupd в ChromeOS пока не поддерживает периферийное устройство.
Производители оригинального оборудования (ODM) и оригинального оборудования (OEM) будут напрямую работать с поставщиками чипсетов для отправки изменений плагинов в кодовую базу fwupd.
- См. Руководство по интеграции fwupd (Второй шаг — использование fwupd) .
- Изменения плагина: пример 1 , пример 2
- Сопоставление
VIDs:PIDs
в файле.quirk
: пример 3- В качестве альтернативы изменению файла quirk, если периферийное устройство USB поддерживается существующим плагином, вы можете следовать спецификации DS20 .
- Объединение полученных изменений плагина и особенностей силами сопровождающих fwupd.
- Дождитесь официального релиза fwupd (например, 1.8.4), запишите версию.
Релизы fwupd регулярно отражаются в ChromeOS и будут соответствовать графику выпусков Chromium .
Если вы отправляете изменения плагина, исправления ошибок или изменения файла особенностей после даты окончания заморозки функций предстоящего выпуска Chromium, но изменения имеют высокий приоритет для следующего выпуска ChromeOS, то:
- Перейдите в раздел «Отслеживание проблем партнеров» .
- Войдите в систему, используя свою учетную запись домена партнера Google.
Нажмите кнопку «Создать проблему» в меню слева, чтобы создать ошибку в компоненте (
ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd
). Это даст команде ChromeOS сигнал о необходимости обновить версию fwupd в ChromeOS.Укажите в сообщении об ошибке следующую информацию:
Название ошибки:
[PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
Описание ошибки:
- Номер версии fwupd, содержащий изменения плагина:
- Какие функции он добавляет?
- Какие ошибки исправлены?
- Какое оборудование он поддерживает?
- Марка/модель устройства
- VID, PID
- GUID (глобальный уникальный идентификатор)
- Номер версии fwupd, содержащий изменения плагина:
Пример скриншота:
Ошибка будет рассмотрена, и инженеры Google включат выборочную версию fwupd в ChromeOS.
- Пример списка изменений 1
- Примечание : fwupd uprev следует графику выпуска Chromium , убедитесь, что запрос на fwupd uprev отправлен до даты окончания заморозки функций ветки.
Предыдущая версия fwupd будет перемещена на канал canary после одобрения списка изменений.
- Оставьте комментарий к ошибке, чтобы узнать, какая версия сборки ChromeOS содержит более раннюю версию fwupd. Вы также можете использовать CL Finder для поиска версии сборки в консоли партнёра ChromeOS (CPCon) (требуется учётная запись домена партнёра Google Corp., для доступа к CPCon обратитесь к TAM).
Вариант использования 2: Текущая версия fwupd в ChromeOS поддерживает периферийное устройство
Текущая версия fwupd в ChromeOS уже поддерживает периферийное устройство, и доступна новая прошивка.
Создайте файл
.cab
.Все прошивки загружаются в виде архива CAB. LVFS ожидает, что помимо двоичного файла прошивки, архив будет содержать как минимум один файл .metainfo.xml , описывающий целевое устройство и прошивку. Вы можете создать архив CAB с помощью gcab (библиотеки для создания CAB-файлов) в Linux.
Загрузите протестированное и финальное обновление прошивки (файл
.cab
) в LVFS.Убедитесь, что обновление доступно на стабильном пульте ДУ.
Если он доступен на закрытом , эмбарго или тестовом удаленном сервере, он не будет добавлен в зеркало ChromeOS.
Обновления отмечены как проверенные в LVFS с помощью подписанного отчета .
Убедитесь, что тесты устройства добавлены.
- Пример файла JSON , поддерживаемый тестовой платформой для тестирования устройств
Если это первая загрузка прошивки, то убедитесь, что в стабильной удаленной версии LVFS доступны как минимум две прошивки: базовая (для проверки понижения версии) и новая (для проверки повышения версии).
Обновление прошивки должно быть протестировано на ChromeOS с помощью подписанного отчета .
Загрузите сертификаты в LVFS, чтобы связать DUT с вашей учетной записью.
- Войдите в LVFS , используя свою учетную запись.
- Нажмите значок «Персона» в правом верхнем углу или нажмите https://fwupd.org/lvfs/profile{:.external}.
- Нажмите «Настройки профиля» .
Найдите сертификат клиента на вашем 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/
Нажмите кнопку «Загрузить сертификат» в разделе «Сертификаты клиента» на сайте LVFS и загрузите сертификат.
- Повторите эти шаги на каждом Chromebook, который вы используете для тестирования (вы можете загрузить несколько сертификатов для разных компьютеров).
Тестовое обновление и загрузка подписанных отчетов через DUT.
Чтобы протестировать и загрузить отчеты, выполните следующие команды и пройдите аутентификацию при появлении соответствующего запроса.
fwupdmgr refresh
fwupdmgr update
fwupdmgr report-history --sign
Примечание : если вы уже загрузили отчеты без флага
--sign
, вы можете использовать fwupdmgr report-history--sign --force
для повторной загрузки того же отчета в LVFS.fwupdmgr report-history --sign --force
Вы можете передать
--verbose
, чтобы увидеть ответ сервера.fwupdmgr report-history --force --verbose
Нажмите «Да» в диалоговом окне подтверждения.
- Это должно загрузить подписанный отчет в вашу учетную запись.
- Для подтверждения перейдите по адресу https://fwupd.org/lvfs/dashboard и нажмите «Подписанные отчеты» в разделе «Главная» в левом верхнем углу.
Проверьте версию прошивки на LVFS, есть ли подписанные отчеты
- Найдите периферийное устройство на LVFS.
- Если загруженный подписанный отчёт был создан после успешного обновления версии прошивки периферийного устройства с помощью Chromebook, то в разделе «Протестировано» будут указаны версия ChromeOS, версия fwupd и объект. См. пример .
- Убедитесь, что в поле Release Gating отображается зеленая галочка «Доступно пользователям ChromOS».
Начиная с версии M126 обновления прошивки будут доступны пользователям ChromeOS только при наличии у прошивки подписанных отчетов (протестировано с ChromeOS) на LVFS.
- Через 24 часа пользователи смогут подключить периферийное устройство к Chromebook и обновить прошивку через интерфейс ChromeOS. Перейдите в раздел «Настройки» > «О ChromeOS» > «Обновления прошивки» .
- Примечание: обновления прошивки будут доступны при условии, что все требуемые изменения плагинов доступны в ChromeOS для данного этапа.
Более подробную информацию о подписанных отчетах можно найти на сайте LVFS .
Часто задаваемые вопросы
В: Какой Chromebook поддерживает fwupd?
Все устройства ChromeOS версии M101 или более поздней.
В: Как узнать, какая версия fwupd интегрирована с ChromeOS?
- Откройте
chrome://system
через браузер (M109 или более позднюю версию).- Перейдите к
fwupd_version
.
- Перейдите к
- Или через режим разработчика, консоль root,
- Введите
fwupdmgr --version
- Найдите среду
runtime org.freedesktop.fwupd
- Введите
В: Сколько времени занимает процесс fwupd uprev?
fwupd uprev соответствует графику выпуска Chromium , убедитесь, что запрос на fwupd uprev отправлен до даты окончания заморозки функций ветки.
В: Где я могу получить более подробную информацию о графике выпуска ChromeOS?
В: Как перевести Chromebook в режим разработчика?
- Выключите Chromebook.
- Удерживайте Esc + Обновить и нажмите кнопку питания.
- Примечание : на некоторых Chromebook это сочетание клавиш esc + → (стрелка вправо) и кнопка питания.
- Устройство включится, и вы увидите экран/режим восстановления.
- Затем нажмите ctrl + d , а затем Enter , чтобы принять изменения.
- Примечание : если вы нажмете любую клавишу до нажатия ctrl + d , устройство не перейдет в режим разработчика.
- Устройство перезагрузится, подаст звуковой сигнал, и вы увидите сообщение «Ваша система переходит в режим разработчика».
- Примерно через 30 секунд вы увидите сообщение «Подготовка системы к режиму разработчика».
- В конце концов (это может занять от 10 минут до 1+ часа в зависимости от размера диска) устройство перезагрузится и отобразит обычный экран приветствия.
- Чтобы открыть командную строку, нажмите ctrl + alt + → (клавиша со стрелкой вправо).
- Примечание: на некоторых Chromebook это сочетание клавиш Ctrl + Alt + Refresh .
- Чтобы вернуться в режим браузера, нажмите ctrl + alt + ← (клавиша со стрелкой влево).
- Более подробную информацию можно найти в [Режиме разработчика]
В: Как перевести Chromebook в обычный режим (т. е. отключить режим разработчика)?
Перезагрузите устройство и нажмите пробел на экране прошивки.
Более подробную информацию можно найти в [Режиме разработчика].
В: Поддерживает ли ChromeOS понижение версии через fwupd?
Нет. Если рабочая версия fwupd или прошивки выйдет из строя, вам придётся удалить подписанный отчёт через https://fwupd.org/lvfs/dashboard. Важно проводить тестирование каждый раз, когда вы вносите изменения в плагин и/или выпускаете новую прошивку. Убедитесь, что базовая версия прошивки всегда доступна на стабильном удалённом сервере LVFS.
В: Как узнать, какие версии ChromeOS будут поддерживать те или иные обновления fwupd?
Вы можете оставить комментарий к ошибке, указав, в какую версию сборки внесены изменения, и инженеры Google должны предоставить вам эту информацию. Вы также можете использовать CL Finder для поиска версии сборки в консоли партнёра ChromeOS (CPCon) (требуется учётная запись домена партнёра Google Corp — обратитесь к 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.
Поставщики могут поместить данные файла quirk в USB-дескриптор, а не в проект fwupd. Таким образом, USB-устройство подключается, fwupd считывает данные дескриптора, сопоставляет плагин и получает информацию об устройстве, не требуя от поставщика отправки патча в fwupd и ожидания выполнения fwupd uprev.
В: Является ли DS20 альтернативой только изменению файлов Quirk?
Да; в большинстве случаев для будущего оборудования достаточно просто добавить VID и PID в существующий плагин, а не вносить изменения в код. Если требуется изменение кода, поставщик должен отправить изменения плагина в fwupd.
Приложения
- Руководство разработчика
- Поддержка разработчиков
- Введение в Git и Gerrit для участников CrOS
- Внесение изменений в исходный код
- Процесс рассмотрения/утверждения Gerrit
- Руководство по интеграции 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 | Первоначальная публикация на сайте партнера |