Целью этого проекта является сделать обновление прошивки Linux автоматическим, безопасным и надежным.
Дополнительная информация доступна на сайте.
Проблемы и обсуждения GitHub в этом репозитории
IRC-канал Либера #fwupd
. Вы можете присоединиться через IRC Libera или через IRC-мост на Matrix.
См. Сборка и отладка, чтобы узнать, как создать среду разработки fwupd.
ПРИМЕЧАНИЕ. В большинстве случаев конечным пользователям не следует компилировать fwupd с нуля; это сложный проект с десятками зависимостей (и таким же количеством параметров конфигурации), и слишком много вещей могут пойти не так.
Пользователям следует просто установить и обновить fwupd в своем дистрибутиве, управлять и тестировать сопровождающий пакета. В дистрибутиве также будет проведено некоторое тестирование того, как fwupd взаимодействует с другим программным обеспечением в вашей системе, например, с использованием программного обеспечения GNOME.
Установка fwupd с помощью Snap или Flatpak может быть полезна для обновления конкретного устройства в командной строке, которому требуется новейшая версия fwupd, но ее не следует рассматривать как замену системной версии, поставляемой с дистрибутивом.
Tartan — это плагин статического анализа LLVM, созданный для анализа кода GLib. Его можно установить и затем запустить, используя:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
По умолчанию этот проект настроен на загрузку прошивки из службы прошивки поставщиков Linux (LVFS).
Эта услуга доступна всем OEM-производителям и создателям прошивок, которые хотят сделать свою прошивку доступной для пользователей Linux.
Более подробную информацию о технических деталях создания капсулы прошивки вы можете найти в разделе поставщиков оборудования на сайте fwupd.
Если у вас есть устройство с прошивкой, поддерживаемой fwupd, вы можете проверить наличие обновлений и применить их с помощью инструментов командной строки fwupd.
# fwupdmgr get-devices
Это отобразит все устройства, обнаруженные fwupd.
# fwupdmgr refresh
Это приведет к загрузке последних метаданных из LVFS.
# fwupdmgr get-updates
Если обновления доступны для каких-либо устройств в системе, они будут отображены.
# fwupdmgr update
При этом будут загружены и применены все обновления для вашей системы.
Обновления, которые можно применить в реальном времени, будут выполнены немедленно.
Обновления, запускаемые при загрузке, будут подготовлены для следующей перезагрузки.
Дополнительную информацию о рабочем процессе обновления можно найти в разделе для конечных пользователей веб-сайта fwupd.
Если проект Passim также установлен и включен, fwupd повторно опубликует загруженный файл метаданных, который будет обслуживаться по 0.0.0.0:27500
по умолчанию.
Другие клиенты в той же сети могут использовать это через mDNS/LLMNR, чтобы уменьшить пропускную способность сети для настроенных удаленных устройств.
Чтобы отключить эту функцию, установите P2pPolicy=none
в /etc/fwupd/daemon.conf
, удалите пакет passim или используйте systemctl mask passim.service
на терминале.
fwupd будет поощрять пользователей сообщать об успешных и неудачных обновлениях обратно в LVFS. Это необязательная функция, но она приветствуется, поскольку она предоставляет администраторам LVFS и OEM-разработчикам ценную информацию об эффективности процесса обновления встроенного ПО.
С политикой конфиденциальности этих данных можно ознакомиться на сайте lvfs readthedocs.
Чтобы сообщить о статусе обновления, запустите:
# fwupdmgr report-history
В LVFS будут передаваться только обновления, которые были распространены из LVFS.
Поток обновлений можно контролировать на предприятии с помощью функции «одобренные обновления». Это позволяет администратору домена фильтровать возможные обновления с центрального сервера (например, LVFS или зеркала) и выбирать только встроенное ПО, которое было протестировано специально в вашей организации.
Список одобренных обновлений можно включить, добавив ApprovalRequired=true
в файл удаленной конфигурации, например lvfs.conf
. После включения список одобренных обновлений можно установить в fwupd.conf
используя список, разделенный запятыми.
Например:
ApprovedFirmware=foo,bar
Где foo,bar
относится к контрольным суммам контейнера, которые будут соответствовать двум обновлениям в файле метаданных.
Дополнительно список одобренных прошивок можно пополнить с помощью fwupdmgr set-approved-firmware baz
или с помощью интерфейса D-Bus.
fwupdmgr — это клиент командной строки, но различные дополнительные графические интерфейсы перечислены на странице руководства fwupdmgr.
Coverity — статический анализатор кода Java, C/C++, C#, JavaScript, Ruby и Python.
PVS-Studio — статический анализатор кода C, C++, C# и Java.