Richard Hughes, criador do projeto PackageKit e ativo participante do desenvolvimento do GNOME, apresentou o lançamento do pacote fwupd 2.0.0, que oferece um processo em segundo plano para organizar atualizações de firmware e a ferramenta fwupdmgr para gerenciar firmwares, verificar a disponibilidade de novas versões e baixar firmwares. O código do projeto é escrito em C e distribuído sob a licença LGPLv2.1.
O projeto oferece aos fabricantes OEM e desenvolvedores de firmware um serviço para carregar firmwares em um catálogo centralizado chamado LVFS (Linux Vendor Firmware Service), que pode ser utilizado em distribuições Linux através da ferramenta fwupd. Atualmente, o catálogo oferece firmwares para mais de 1600 dispositivos de 160 fabricantes. O uso do catálogo centralizado elimina a necessidade de os fabricantes criarem pacotes para distribuições e permite o envio de firmwares em um arquivo '.cab' com metadados adicionais, que também são aplicáveis ao publicar firmwares para Windows.
O fwupd suporta tanto o modo de atualização automática de firmwares, sem a necessidade de qualquer ação do usuário, quanto a execução da operação após confirmação ou solicitação do usuário. Fwupd e LVFS são utilizados no RHEL, Fedora, Ubuntu, SUSE, Debian e muitas outras distribuições para a atualização automatizada de firmwares, e também são suportados em gerenciadores de aplicativos como GNOME Software e KDE Discover. Além disso, o fwupd não se limita a sistemas desktop e é adequado para atualizar firmwares em smartphones, tablets, servidores e dispositivos de internet das coisas.
No novo lançamento:
- O processo em segundo plano foi transferido do uso da ligação GObject GUsb para o acesso direto ao libusb e ao sysfs, o que possibilitou a transferência da emulação de dispositivos para a biblioteca libfwupdplugin e a implementação da emulação de atualização de firmwares em dispositivos falsos hidraw e nvme, semelhante à emulação usando dispositivos USB fictícios. Essa possibilidade permitiu a realização de testes adicionais que identificaram problemas com a atualização de firmwares, que surgiram após alterações feitas no fwupd.
- A biblioteca GUdev, que fornece vinculações GObject sobre a libudev, foi excluída das dependências. Em vez do GUdev, o processo fwupd agora cria um socket netlink para analisar eventos udev transmitidos via netlink. Essa mudança resultou em uma redução significativa no consumo de memória e na carga da CPU durante a inicialização e operação, além de facilitar a adição do suporte ao ueventd, que no futuro permitirá que o fwupd suporte a plataforma Android.
- Foram adicionadas otimizações para reduzir o consumo de memória durante a transmissão de firmware de arquivos para dispositivos (em vez de copiar firmwares para a memória, é utilizada a transferência por meio de um descritor de arquivo).
- Suporte adicionado para novos dispositivos:
- Leitores de cartão Algoltek com interface USB
- AMD Kria SoM
- Cable Matters USB Hub
- Dispositivos baseados em Cinterion FDL (Firmware Download Modem)
- CY6611 EZ-USB HX3PD
- Dock Dell K2
- Sensores biométricos Elan 0C9F
- Dock stations HP Fleetwood e Hendrix
- Huddly L1, S1 e Crew
- Jabra PanaCast
- Lenovo Legion HID2
- Lenovo ThinkSmart Bar
- Logitech Lemmy
- Logitech Sight
- Telões sensíveis ao toque Logitech
- Conversores MediaTek
- Parade PS185
- Qualcomm S5gen2 BLE
- Teclado Dual Telink
- O suporte para formatos de verificação de metadados e firmware obsoletos foi encerrado.
- As utilitários de linha de comando que haviam sido marcados como obsoletos foram removidos.
- Adicionado um API para o upload de relatórios no gnome-firmware.
- O sistema de build agora inclui suporte para a plataforma Darwin.
- Foi adicionada a capacidade de listar arquivos do ESP em formato JSON (fwupdtool esp-list —json).
- Adicionada a possibilidade de especificar configurações de dispositivos emulados.
Fonte: opennet.ru
