Доступен инструментарий для загрузки прошивок Fwupd 2.0.0

Ричард Хьюз (Richard Hughes), создатель проекта PackageKit, активно участвующий в разработке GNOME, представил выпуск пакета fwupd 2.0.0, предлагающего фоновый процесс для организации обновления прошивок и утилиту fwupdmgr для управления прошивками, проверки появления новых версий и загрузки прошивок. Код проекта написан на языке Си и распространяется под лицензией LGPLv2.1.

Проект предоставляет OEM-производителям и разработчикам прошивок сервис для загрузки прошивок в специальный централизованный каталог LVFS (Linux Vendor Firmware Service), который можно использовать в дистрибутивах Linux при помощи инструментария fwupd. В настоящее время в каталоге предложены прошивки для более 1600 устройств от 160 производителей. Использование централизованного каталога избавляет производителей от необходимости формирования пакетов для дистрибутивов и позволяет передавать прошивки в архиве “.cab” с дополнительным метаданными, которые также применяются при публикации прошивок для Windows.

В fwupd поддерживается как режим автоматического обновления прошивок, без необходимости совершения каких-то действий со стороны пользователя, так и выполнение операции после подтверждения или запроса пользователя. Fwupd и LVFS применяются в RHEL, Fedora, Ubuntu, SUSE, Debian и многих других дистрибутивах для автоматизированного обновления прошивок, а также поддерживаются в менеджерах приложений GNOME Software и KDE Discover. При этом fwupd не ограничен настольными системами и пригоден для обновления прошивок на смартфонах, планшетах, серверах и устройствах интернета-вещей.

В новом выпуске:

  • Фоновый процесс переведён с использования GObject-обвязки GUsb на прямое обращение к libusb и sysfs, что дало возможность вынести эмуляцию устройств в библиотеку libfwupdplugin и реализовать эмуляцию обновления прошивок на фиктивных устройствах hidraw и nvme по аналогии с эмуляцией с использованием фиктивных USB-устройств. Подобная возможность позволила реализовать дополнительные тесты, выявляющие проблемы с обновлением прошивок, возникающие после внесения в fwupd тех или иных изменений.
  • Из зависимостей исключена библиотека GUdev, предоставляющая GObject-обвязки над libudev. Вместо GUdev процессом fwupd теперь создаётся netlink-сокет для разбора событий udev, передаваемых через netlink. Изменение привело к значительному сокращению потребления памяти и снижению нагрузки на CPU при запуске и в процессе работы, а также упростило добавление поддержки ueventd, которая в будущем позволит добавить в fwupd поддержку платформы Android.
  • Добавлены оптимизации для снижения потребления памяти в процессе потоковой передачи прошивок из архивов в устройства (вместо копирования прошивок в память теперь используется передача через файловый дескриптор).
  • Добавлена поддержка новых устройств:
    • Кардридеры Algoltek с интерфейсом USB
    • AMD Kria SoM
    • Cable Matters USB Hub
    • Устройства на базе Cinterion FDL (Firmware Download Modem)
    • CY6611 EZ-USB HX3PD
    • Dell K2 Dock
    • Биометрические датчики Elan 0C9F
    • Dock-станции HP Fleetwood и Hendrix
    • Huddly L1, S1 и Crew
    • Jabra PanaCast
    • Lenovo Legion HID2
    • Lenovo ThinkSmart Bar
    • Logitech Lemmy
    • Logitech Sight
    • Сенсорные экраны Logitech
    • Конвертеры MediaTek
    • Parade PS185
    • Qualcomm S5gen2 BLE
    • Telink Dual Keyboard
  • Прекращена поддержка устаревших форматов верификации метаданных и прошивок.
  • Удалены утилиты командной строки, ранее объявленные устаревшими.
  • Добавлен API для загрузки отчётов в gnome-firmware.
  • В системе сборки добавлена поддержка платформы Darwin.
  • Добавлена поддержка вывода списка файлов из ESP в формате JSON (fwupdtool esp-list –json).
  • Добавлена возможность указания в настройках эмулируемых устройств.
Release. Ссылка here.