Релиз открытого инструментария для загрузки прошивок Fwupd 2.0

В начале октября 2024 года состоялся релиз открытого инструментария для загрузки прошивок Fwupd 2.0 с поддержкой больших разделов в томах EFI FFS3 и возможностью стабильной работы с большинством типов CRC-32 и CRC-16. Исходный код проекта написан на C и Python и опубликован на GitHub под лицензией GNU Lesser General Public License v2.1.

По информации OpenNET, проект Fwupd предоставляет OEM-производителям и разработчикам прошивок сервис для загрузки прошивок в специальный централизованный каталог LVFS (Linux Vendor Firmware Service), который можно использовать в дистрибутивах Linux при помощи инструментария fwupd.

В настоящее время в каталоге проекта Fwupd предложены прошивки для более 1600 устройств от 160 производителей. Использование централизованного каталога избавляет производителей от необходимости формирования пакетов для дистрибутивов и позволяет передавать прошивки в архиве *.cab с дополнительными метаданными, которые также применяются при публикации прошивок для Windows.

В проекте Fwupd поддерживается режим автоматического обновления прошивок, без необходимости совершения каких-то действий со стороны пользователя, так и выполнение операции после подтверждения или запроса пользователя.

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

Основные изменения и добавления в Fwupd 2.0:

• фоновый процесс переведён с использования GObject-обвязки GUsb на прямое обращение к libusb и sysfs, что дало возможность вынести эмуляцию устройств в библиотеку libfwupdplugin и реализовать эмуляцию обновления прошивок на фиктивных устройствах hidraw и nvme по аналогии с эмуляцией с использованием фиктивных USB-устройств. Подобная возможность позволила реализовать дополнительные тесты, выявляющие проблемы с обновлением прошивок, возникающие после внесения в fwupd тех или иных изменений.

• из зависимостей исключена библиотека GUdev, предоставляющая GObject-обвязки над libudev. Вместо GUdev процессом fwupd теперь создаётся netlink-сокет для разбора событий udev, передаваемых через netlink. Изменение привело к значительному сокращению потребления памяти и снижению нагрузки на CPU при запуске и в процессе работы, а также упростило добавление поддержки ueventd, которая в будущем позволит реализовать в fwupd поддержку платформы Android.

• добавлены оптимизации для снижения потребления памяти в процессе потоковой передачи прошивок из архивов в устройства (вместо копирования прошивок в память теперь используется передача через файловый дескриптор).

• прекращена поддержка устаревших форматов верификации метаданных и прошивок.

• удалены утилиты командной строки, ранее объявленные устаревшими.

• добавлен API для загрузки отчётов в gnome-firmware.

• в системе сборки добавлена поддержка платформы Darwin.

• добавлена поддержка вывода списка файлов из ESP в формате JSON (fwupdtool esp-list —json).

• добавлена возможность указания в настройках эмулируемых устройств.

• добавлена поддержка новых устройств, включая:

кардридеры 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.

Источник: habr.com

0 0 голоса
Рейтинг новости
7140
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии