Este projeto visa tornar a atualização de firmware no Linux automática, segura e confiável.
Informações adicionais estão disponíveis no site.
Problemas e discussões do GitHub neste repositório
Canal IRC Libera #fwupd
. Você pode ingressar através do IRC do Libera ou através da ponte IRC no Matrix.
Consulte Construindo e Depurando para saber como construir o ambiente de desenvolvimento fwupd.
NOTA: Na maioria dos casos, os usuários finais não devem compilar o fwupd do zero; é um projeto complicado com dezenas de dependências (e tantas opções de configuração) e há muitas coisas que podem dar errado.
Os usuários devem apenas ter o fwupd instalado e atualizado por sua distribuição, gerenciado e testado pelo mantenedor do pacote. A distribuição também terá feito alguns testes sobre como o fwupd interage com outros softwares em seu sistema, por exemplo, usando o software GNOME.
Instalar o fwupd usando Snap ou Flatpak pode ser útil para atualizar um dispositivo específico na linha de comando que precisa de uma versão mais recente do fwupd, mas não deve ser considerado um substituto para a versão do sistema fornecida pela distribuição.
Tartan é um plugin de análise estática LLVM desenvolvido para analisar código GLib. Ele pode ser instalado e executado usando:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
Este projeto é configurado por padrão para baixar firmware do Linux Vendor Firmware Service (LVFS).
Este serviço está disponível para todos os OEMs e criadores de firmware que desejam disponibilizar seu firmware para usuários Linux.
Você pode encontrar mais informações sobre os detalhes técnicos da criação de uma cápsula de firmware na seção de fornecedores de hardware do site fwupd.
Se você tiver um dispositivo com firmware compatível com fwupd, é assim que você pode verificar se há atualizações e aplicá-las usando as ferramentas de linha de comando do fwupd.
# fwupdmgr get-devices
Isso exibirá todos os dispositivos detectados pelo fwupd.
# fwupdmgr refresh
Isso fará o download dos metadados mais recentes do LVFS.
# fwupdmgr get-updates
Se houver atualizações disponíveis para algum dispositivo no sistema, elas serão exibidas.
# fwupdmgr update
Isso fará o download e aplicará todas as atualizações ao seu sistema.
As atualizações que podem ser aplicadas ao vivo serão feitas imediatamente.
As atualizações executadas na inicialização serão preparadas para a próxima reinicialização.
Você pode encontrar mais informações sobre o fluxo de trabalho de atualização na seção de usuários finais do site do fwupd.
Se o projeto Passim também estiver instalado e habilitado, o fwupd publicará novamente o arquivo de metadados baixado para ser servido em 0.0.0.0:27500
por padrão.
Outros clientes na mesma rede podem fazer uso disso via mDNS/LLMNR para reduzir a largura de banda da rede para remotos configurados.
Para desativar esta funcionalidade, defina P2pPolicy=none
em /etc/fwupd/daemon.conf
, desinstale o pacote passim ou use systemctl mask passim.service
no terminal.
O fwupd incentivará os usuários a relatar atualizações bem-sucedidas e com falha ao LVFS. Este é um recurso opcional, mas incentivado, pois fornece feedback valioso aos administradores de LVFS e desenvolvedores OEM em relação à eficácia do processo de atualização de firmware.
A política de privacidade relativa a estes dados pode ser visualizada no site lvfs readthedocs.
Para relatar o status de uma atualização, execute:
# fwupdmgr report-history
Somente atualizações distribuídas pelo LVFS serão relatadas ao LVFS.
O fluxo de atualizações pode ser controlado na empresa usando o recurso “atualizações aprovadas”. Isso permite que o administrador do domínio filtre as possíveis atualizações de um servidor central (por exemplo, o LVFS ou um espelho) apenas para firmware que tenha sido testado especificamente em sua organização.
A lista de atualizações aprovadas pode ser habilitada adicionando ApprovalRequired=true
ao arquivo de configuração remota, por exemplo, lvfs.conf
. Uma vez habilitada, a lista de atualizações aprovadas pode ser definida em fwupd.conf
usando uma lista delimitada por vírgulas.
Por exemplo:
ApprovedFirmware=foo,bar
Onde foo,bar
refere-se às somas de verificação do contêiner que corresponderiam a duas atualizações no arquivo de metadados.
Além disso, a lista de firmware aprovado pode ser complementada usando fwupdmgr set-approved-firmware baz
ou usando a interface D-Bus.
fwupdmgr é um cliente de linha de comando, mas vários frontends gráficos adicionais são enumerados na página man do fwupdmgr.
Coverity - analisador estático para código Java, C/C++, C#, JavaScript, Ruby e Python.
PVS-Studio - analisador estático para código C, C++, C# e Java.