fwupd, de tool bij uitstek voor het beheren van firmware-updates in Linux

Fwupd-logo.

Het is onlangs aangekondigd release van fwupd 2.0, een hulpmiddel open source gebruikt om de firmware van verschillende apparaten in Linux te beheren en bij te werken. Het doel is om de installatie en het updaten van firmware op hardware te vergemakkelijken zonder de noodzaak om toegang te krijgen tot fabrikantspecifieke tools of opnieuw op te starten naar een ander besturingssysteem.

fwupd maakt gebruik van de LVFS-firmware-updateservice (Linux Vendor Firmware Service), waar fabrikanten hun firmware-updates uploaden. Momenteel bevat de LVFS-catalogus firmware voor meer dan 1,600 apparaten van 160 fabrikanten.

Het gebruik van Deze gecentraliseerde directory elimineert de noodzaak voor fabrikanten om voor elke distributie specifieke pakketten te genereren, waardoor ze firmware kunnen overbrengen in een ".cab"-bestand dat extra metagegevens bevat, vergelijkbaar met wat wordt gedaan bij het publiceren van firmware voor Windows.

De Gebruikers kunnen deze updates rechtstreeks vanuit hun distributie downloaden en installeren Linux, dat een groot aantal processen faciliteert, omdat het zowel de automatische firmware-updatemodus ondersteunt als de optie om de bewerking na bevestiging uit te voeren.

Een van de belangrijkste kenmerken die zich onderscheiden van fwupd, kunnen we het volgende vinden:

  • Ondersteuning voor een breed scala aan apparaten (UEFI, USB, Thunderbolt, beeldschermen, enz.).
  • Firmware-installatie en -update zonder opnieuw op te starten of de werkomgeving te verlaten.
  • Integratie met pakketbeheer en systeemupdates.
  • Compatibel met veel Linux-distributies
  • Het is een handige en veilige oplossing om de firmware up-to-date te houden
  • Het is compatibel met de GNOME-software en KDE Discover-applicatiebeheerders.
  • Het is niet alleen beperkt tot desktopsystemen, maar is ook geschikt voor het updaten van firmware op apparaten zoals smartphones, tablets, servers en Internet of Things-apparaten.

Wat is er nieuw in fwupd 2.0?

In deze nieuwe versie van fwupd 2.0, heeft het achtergrondproces verplaatst van het gebruik van de GObject-hook van GUsb naar directe toegang tot libusb en sysfs. Deze verandering heeft het mogelijk gemaakt om de apparaatemulatie naar de libfwupdplugin-bibliotheek te verplaatsen en emulatie van firmware-updates op dummy hidraw- en nvme-apparaten te implementeren, vergelijkbaar met de emulatie die wordt uitgevoerd met dummy USB-apparaten. Dankzij deze functie hebben we aanvullende tests kunnen uitvoeren die problemen identificeren met updates die kunnen optreden na het aanbrengen van bepaalde wijzigingen in fwupd.

ook de GUdev-bibliotheek, die GObject-bindingen biedt via libudev, is uit het pand verwijderd. In plaats daarvan creëert het fwupd-proces nu een netlink-socket om udev-gebeurtenissen te analyseren die er doorheen worden verzonden. Deze verandering heeft geresulteerd in een aanzienlijke vermindering van het geheugenverbruik en de CPU-belasting zowel bij het opstarten als tijdens gebruik, naast het vereenvoudigen van de integratie van ueventd-ondersteuning, waardoor fwupd in de toekomst compatibel zal zijn met het Android-platform.

Er zijn optimalisaties doorgevoerd om het geheugengebruik te verminderen bij het overbrengen van firmware van bestanden naar apparaten; In plaats van de firmware naar het geheugen te kopiëren, wordt nu gebruik gemaakt van overdracht via een bestandsdescriptor. Ook Er is ondersteuning toegevoegd voor een verscheidenheid aan nieuwe apparaten.

Bovendien heeft Ondersteuning voor verouderde formaten voor metadata en firmwareverificatie is stopgezet. en eerder verouderde opdrachtregelhulpprogramma's zijn verwijderd. Ook API toegevoegd om rapporten in gnome-firmware te laden en het bouwsysteem bevat nu ondersteuning voor het Darwin-platform.

Ten slotte hebben we de mogelijkheid toegevoegd om een ​​lijst met ESP-bestanden in JSON-indeling weer te geven (met behulp van de opdracht fwupdtool esp-list –json) en de optie toegevoegd om geëmuleerde apparaten in de configuratie op te geven.

Tot slot, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen in de volgende link.

Hoe fwupd op Linux te installeren?

Voor degenen die geïnteresseerd zijn in de mogelijkheid om fwupd te installeren: je moet weten dat het in de meeste distributies al vooraf is geïnstalleerd. Als u het echter niet hebt geïnstalleerd, kunt u dit doen met de volgende opdracht, afhankelijk van uw distributie:

Ubuntu en derivaten:

sudo apt install fwupd

Fedora:

sudo dnf install fwupd

Arch Linux en daarop gebaseerd:

sudo pacman -S fwupd

Hoe gebruik je fwupd?

De manier om fwupd te gebruiken is vrij eenvoudig en is gebaseerd op het uitvoeren van opdrachten en de juiste manier om dit te doen is door de database altijd bij te werken van de beschikbare firmware, voordat u doorgaat met het bijwerken van de apparaatfirmware. Dit kunnen we doen door het volgende te typen:

sudo fwupdmgr refresh

naar kijk welke apparaten fwupd ondersteunen, evenals hun huidige status en als er updates beschikbaar zijn, kunnen ze dit doen met de volgende opdracht:

fwupdmgr get-devices

Zodra u de apparaten heeft vermeld, kunnen ze dat doen controleer op firmware-updates beschikbaar door het uitvoeren van:

fwupdmgr get-updates

Als er firmware-updates beschikbaar zijn, je kunt ze toepassen door te rennen:

sudo fwupdmgr update

naar een lijst weergeven met firmware-updates die zijn geïnstalleerd via fwupd kun je dit doen met het volgende commando:

fwupdmgr history