Este proyecto tiene como objetivo hacer que la actualización del firmware en Linux sea automática, segura y confiable.
Información adicional está disponible en el sitio web.
Problemas y discusiones de GitHub en este repositorio
Canal IRC Libera #fwupd
. Puedes unirte a través del IRC de Libera o mediante el puente IRC en Matrix.
Consulte Creación y depuración para saber cómo crear el entorno de desarrollo fwupd.
NOTA: En la mayoría de los casos, los usuarios finales no deben compilar fwupd desde cero; Es un proyecto complicado con docenas de dependencias (y tantas opciones de configuración) y hay demasiadas cosas que pueden salir mal.
Los usuarios simplemente deberían tener fwupd instalado y actualizado por su distribución, administrado y probado por el mantenedor del paquete. La distribución también habrá realizado algunas pruebas sobre cómo fwupd interactúa con otro software en su sistema, por ejemplo usando el software GNOME.
Instalar fwupd usando Snap o Flatpak puede ser útil para actualizar un dispositivo específico en la línea de comando que necesita una versión de fwupd de última generación, pero no debe considerarse como un reemplazo de la versión del sistema proporcionada por la distribución.
Tartan es un complemento de análisis estático de LLVM creado para analizar el código GLib. Se puede instalar y luego ejecutar usando:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
Este proyecto está configurado de forma predeterminada para descargar firmware desde el Servicio de firmware del proveedor de Linux (LVFS).
Este servicio está disponible para todos los OEM y creadores de firmware que deseen que su firmware esté disponible para los usuarios de Linux.
Puede encontrar más información sobre los detalles técnicos de la creación de una cápsula de firmware en la sección de proveedores de hardware del sitio web de fwupd.
Si tiene un dispositivo con firmware compatible con fwupd, así es como puede buscar actualizaciones y aplicarlas usando las herramientas de línea de comandos de fwupd.
# fwupdmgr get-devices
Esto mostrará todos los dispositivos detectados por fwupd.
# fwupdmgr refresh
Esto descargará los metadatos más recientes de LVFS.
# fwupdmgr get-updates
Si hay actualizaciones disponibles para algún dispositivo en el sistema, se mostrarán.
# fwupdmgr update
Esto descargará y aplicará todas las actualizaciones para su sistema.
Las actualizaciones que se pueden aplicar en vivo se realizarán de inmediato.
Las actualizaciones que se ejecutan durante el inicio se prepararán para el próximo reinicio.
Puede encontrar más información sobre el flujo de trabajo de actualización en la sección de usuarios finales del sitio web de fwupd.
Si el proyecto Passim también está instalado y habilitado, fwupd volverá a publicar el archivo de metadatos descargado para que se entregue en 0.0.0.0:27500
de forma predeterminada.
Otros clientes en la misma red pueden hacer uso de esto a través de mDNS/LLMNR para reducir el ancho de banda de la red a los controles remotos configurados.
Para deshabilitar esta funcionalidad, configure P2pPolicy=none
en /etc/fwupd/daemon.conf
, desinstale el paquete passim o use systemctl mask passim.service
en la terminal.
fwupd animará a los usuarios a informar a LVFS de las actualizaciones exitosas y fallidas. Esta es una característica opcional, pero se recomienda ya que proporciona comentarios valiosos a los administradores de LVFS y desarrolladores OEM con respecto a la eficacia del proceso de actualización del firmware.
La política de privacidad relativa a estos datos se puede consultar en el sitio lvfs readthedocs.
Para informar el estado de una actualización, ejecute:
# fwupdmgr report-history
Solo se informarán al LVFS las actualizaciones que se distribuyeron desde LVFS.
El flujo de actualizaciones se puede controlar en la empresa mediante la función "actualizaciones aprobadas". Esto permite al administrador del dominio filtrar las posibles actualizaciones desde un servidor central (por ejemplo, el LVFS o un espejo) solo al firmware que se haya probado específicamente en su organización.
La lista de actualizaciones aprobadas se puede habilitar agregando ApprovalRequired=true
al archivo de configuración remota, por ejemplo, lvfs.conf
. Una vez habilitada, la lista de actualizaciones aprobadas se puede configurar en fwupd.conf
usando una lista delimitada por comas.
Por ejemplo:
ApprovedFirmware=foo,bar
Donde foo,bar
se refiere a las sumas de comprobación del contenedor que corresponderían a dos actualizaciones en el archivo de metadatos.
Además, la lista de firmware aprobado se puede complementar utilizando fwupdmgr set-approved-firmware baz
o utilizando la interfaz D-Bus.
fwupdmgr es un cliente de línea de comandos, pero en la página de manual de fwupdmgr se enumeran varias interfaces gráficas adicionales.
Coverity: analizador estático para código Java, C/C++, C#, JavaScript, Ruby y Python.
PVS-Studio: analizador estático para código C, C++, C# y Java.