Aggiornamento del firmware delle periferiche tramite fwupd

Versione: 2.4.3
Ultimo aggiornamento: 23/07/2025

Panoramica

Lo scopo di questa guida è descrivere come configurare gli aggiornamenti del firmware fwupd supportati dall'interfaccia utente di ChromeOS.

fwupd flowchart

Sfondo

fwupd è un daemon open source che esegue aggiornamenti del firmware delle periferiche e di altri sistemi su sistemi basati su Linux. fwupd è il meccanismo con cui ChromeOS aggiorna il firmware delle periferiche.

I payload di aggiornamento di fwupd sono costituiti da file .cab archiviati in Linux Vendor Firmware Service (LVFS). In Linux, gli aggiornamenti di fwupd possono essere resi ampiamente disponibili una volta caricati su LVFS. Tuttavia, affinché gli aggiornamenti siano disponibili in ChromeOS, il team di ChromeOS verificherà e inserirà separatamente nella lista consentita i nuovi aggiornamenti per garantire un'esperienza utente ottimale.

Processo fwupd

Quanto segue si applica solo alle periferiche con certificazione WWCB per le quali sono stati inviati campioni ad Allion.

Se la versione attuale di fwupd in ChromeOS non supporta già la periferica, segui le istruzioni fornite nel caso d'uso 1 e nel caso d'uso 2. Se la versione attuale di fwupd in ChromeOS supporta già la periferica, vai al caso d'uso 2.

Caso d'uso 1: la versione attuale di fwupd di ChromeOS non supporta la periferica

La versione attuale di fwupd in ChromeOS non supporta già la periferica.

immagine

  1. ODM e OEM per collaborare direttamente con i fornitori di chipset per inviare modifiche ai plug-in nel codebase fwupd.

    1. Consulta la fwupd Integration Handbook (Second step - using fwupd).
    2. Modifiche ai plug-in: esempio 1, esempio 2
    3. Corrispondenza VIDs:PIDs nel file .quirk: esempio 3
      • In alternativa alle modifiche ai file di quirk, se la periferica USB è supportata dal plug-in esistente, puoi seguire la specifica DS20.
    4. Fai unire le modifiche risultanti a plug-in e anomalie dai manutentori di fwupd.
    5. Attendi la release secondaria ufficiale di fwupd (ad es. 1.8.4), prendi nota della versione.
  2. Le release di fwupd vengono replicate regolarmente in ChromeOS e seguiranno il calendario delle release di Chromium.

  3. Se invii modifiche ai plug-in, correzioni di bug o modifiche ai file di anomalie dopo la data di interruzione del blocco delle funzionalità di una prossima release di Chromium, ma le modifiche sono di alta priorità per la prossima release di ChromeOS, allora:

    1. Vai a Monitoraggio problemi dei partner.
    2. Accedi con il tuo account del dominio Google Partner.
    3. Fai clic sul pulsante Crea problema nel menu a sinistra per creare un bug nel tuo componente (ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd). In questo modo, il team di ChromeOS riceverà una notifica per aggiornare la versione di fwupd in ChromeOS.

      Fornisci le seguenti informazioni nel bug:

      1. Titolo del bug:

        [PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
        
      2. Descrizione del bug:

        1. Numero di versione di fwupd costituito da modifiche al plug-in:
          • Quali funzionalità aggiunge?
          • Quali bug sono stati corretti?
          • Quale hardware supporta?
        2. Marca/modello del dispositivo
        3. VID, PID
        4. GUID (globally unique identifier)
      3. Screenshot di esempio:

        screenshot del bug di fwupd uprev

  4. Il bug verrà esaminato e la versione selettiva di fwupd verrà incorporata in ChromeOS dagli ingegneri di Google.

  5. La versione di fwupd con upgrade verrà promossa al canale canary non appena l'elenco delle modifiche verrà approvato.

    • Lascia un commento sul bug per sapere quale versione di build di ChromeOS consiste nella versione aggiornata di fwupd. Puoi anche utilizzare CL Finder per cercare la versione della build nella console per i partner ChromeOS (CPCon) (richiede un account di dominio partner di Google Corp, contatta i TAM per accedere a CPCon).

Caso d'uso 2: la versione attuale di fwupd di ChromeOS supporta la periferica

La versione attuale di fwupd in ChromeOS supporta già la periferica ed è disponibile un nuovo firmware.

immagine

  1. Crea un file .cab.

    Tutto il firmware viene caricato come archivio cabinet. Oltre al binario del firmware, LVFS si aspetta che l'archivio contenga almeno un file .metainfo.xml che descriva il dispositivo di destinazione e il firmware. Puoi creare archivi cabinet utilizzando gcab (una libreria per creare file cabinet) su Linux.

  2. Carica l'aggiornamento firmware testato e finale (file .cab) su LVFS.

    1. Assicurati che l'aggiornamento sia disponibile sul telecomando stabile.

      Se è disponibile nel repository remoto privato, con embargo o di test, non verrà aggiunto al mirror di ChromeOS.

    2. Aggiornamenti contrassegnati come convalidati in LVFS tramite un report firmato.

      Assicurati che i test del dispositivo siano stati aggiunti.

    3. Se si tratta del primo caricamento del firmware, assicurati che almeno due firmware,il firmware di base (per testare il downgrade) e il nuovo firmware (per testare l'upgrade), siano disponibili nel repository remoto stabile di LVFS.

  3. L'upgrade del firmware deve essere testato su ChromeOS tramite un report firmato.

    1. Carica i certificati su LVFS per collegare il DUT al tuo account.

      1. Accedi a LVFS con il tuo account.
      2. Fai clic sull'icona "Persona" in alto a destra o fai clic su https://fwupd.org/lvfs/profile{:.external}.
      3. Fai clic su Impostazioni del profilo.
      4. Individua il certificato client su Chromebook.

        • Nota: il Chromebook deve essere in modalità sviluppatore
        • Avvia la shell per sviluppatori di ChromeOS premendo Ctrl+Alt+T.
        • Tipo:

          shell
        • Vai a /var/lib/fwupd/pki:

          cd /var/lib/fwupd/pki
        • Copia il file client.pem in una cartella su Chromebook, ad esempio: Downloads.

          cp client.pm /home/chronos/user/MyFiles/Downloads/
    2. Fai clic sul pulsante Carica certificato nella sezione Certificati client sul sito web LVFS e carica il certificato.

      1. Ripeti questi passaggi su ogni Chromebook che utilizzi per i test (puoi caricare più certificati per computer diversi).
    3. Esegui il test dell'upgrade e carica i report firmati tramite il DUT.

      1. Per testare e caricare i report, esegui i seguenti comandi ed esegui l'autenticazione quando ti viene richiesto.

        fwupdmgr refresh
        fwupdmgr update
        fwupdmgr report-history --sign
      2. Nota: se hai già caricato report senza il flag --sign, puoi utilizzare fwupdmgr report-history --sign --force per ricaricare lo stesso report su LVFS.

        fwupdmgr report-history --sign --force
        • Puoi passare --verbose per visualizzare la risposta del server.

          fwupdmgr report-history --force --verbose
      3. Fai clic su nella finestra di dialogo di conferma.

        • In questo modo, il report firmato verrà caricato nel tuo account.
        • Per confermare, vai su https://fwupd.org/lvfs/dashboard e fai clic su Signed Reports (Report firmati) nella sezione Home in alto a sinistra.
    4. Verificare che la versione del firmware su LVFS disponga di report firmati

      • Cerca la periferica su LVFS.
      • Se il report firmato caricato è stato eseguito dopo l'upgrade riuscito della versione del firmware sulla periferica utilizzando un Chromebook, la sezione Testato da mostrerà la versione di ChromeOS, la versione di fwupd e l'entità. Vedi l'esempio.
      • Assicurati che in Release Gating sia visualizzato un segno di spunta verde "Disponibile per gli utenti di ChromeOS".
    5. A partire dalla versione M126, gli aggiornamenti del firmware saranno disponibili solo per gli utenti ChromeOS se il firmware ha report firmati (testati con ChromeOS) su LVFS.

      • Dopo 24 ore, gli utenti possono collegare la periferica al Chromebook e aggiornare il firmware tramite l'interfaccia utente di ChromeOS. Vai a Impostazioni > Informazioni su ChromeOS > Aggiornamenti firmware.
      • Nota: gli aggiornamenti del firmware saranno disponibili supponendo che tutte le modifiche necessarie ai plug-in siano disponibili su ChromeOS per una determinata milestone.

Maggiori dettagli sui report firmati sono disponibili su LVFS.

Domande frequenti

D: Quale Chromebook supporta fwupd?

Tutti i dispositivi ChromeOS con M101 o versioni successive.

D: Come faccio a sapere quale versione di fwupd è integrata in ChromeOS?

  1. Apri chrome://system tramite browser (M109 o versioni successive).
    1. Vai a fwupd_version.
  2. oppure tramite la modalità sviluppatore, la console root,
    1. Tipo fwupdmgr --version
    2. Cerca runtime org.freedesktop.fwupd

D: Quanto tempo richiede la procedura di aggiornamento di fwupd?

fwupd uprev segue il programma di rilascio di Chromium, assicurati che la richiesta di fwupd uprev venga inviata prima della data limite di interruzione delle funzionalità del ramo.

D: Dove posso trovare ulteriori informazioni sul programma di rilascio di ChromeOS?

Nel programma delle release di Chromium.

D: Come si passa alla modalità sviluppatore su un Chromebook?

  1. Spegni il Chromebook.
  2. Tieni premuti i tasti Esc+Aggiorna e premi il tasto di accensione.
    • Nota: su alcuni Chromebook è Esc + (freccia destra) e premi il tasto di accensione.
  3. Il dispositivo si accende e dovresti visualizzare la schermata / modalità di recupero.
  4. Quindi premi Ctrl+D, seguito da Invio per accettare.
    • Nota: se premi dei tasti prima di Ctrl+D, il dispositivo non passerà alla modalità sviluppatore.
  5. Il dispositivo si riavvierà, emetterà un segnale acustico e verrà visualizzato il messaggio "Il sistema sta passando alla modalità sviluppatore".
  6. Dopo circa 30 secondi, vedrai il messaggio "Preparazione del sistema per la modalità sviluppatore".
  7. Alla fine (possono essere necessari da 10 minuti a più di un'ora, a seconda delle dimensioni del disco), il dispositivo si riavvierà nella normale schermata di benvenuto.
  8. Per aprire il prompt dei comandi, premi Ctrl+Alt+ (tasto Freccia destra).
    • Nota:su alcuni Chromebook, la combinazione di tasti è Ctrl+Alt+Aggiorna.
    • Per tornare alla visualizzazione del browser, premi Ctrl+Alt+ (tasto Freccia sinistra).
  9. Per ulteriori dettagli, consulta [Modalità sviluppatore]

D: Come si fa a passare alla modalità normale su un Chromebook (ovvero disattivare la modalità sviluppatore)?

Riavvia il dispositivo e premi la barra spaziatrice nella schermata del firmware.

Per ulteriori dettagli, consulta [Modalità sviluppatore].

D: ChromeOS supporta i downgrade tramite fwupd?

No. Se la versione di produzione di fwupd o il firmware si interrompe, dovrai eliminare il report firmato tramite https://fwupd.org/lvfs/dashboard. È importante eseguire il test ogni volta che invii modifiche al plug-in e/o è disponibile un nuovo firmware. Assicurati che una versione base del firmware sia sempre disponibile su un repository remoto stabile di LVFS.

D: Come si fa a sapere quali versioni di ChromeOS supportano quali aggiornamenti di fwupd?

Puoi lasciare un commento sul bug chiedendo in quale versione della build sono state incorporate le modifiche e gli ingegneri di Google dovrebbero essere in grado di fornirti queste informazioni. Puoi anche utilizzare CL Finder per cercare la versione della build nella console per i partner ChromeOS (CPCon) (richiede un account di dominio partner Google corp. Contatta i TAM per accedere a CPCon). È possibile fare riferimento alla versione della build sul frontend partner di ChromeOS (CPFE) per vedere a quale milestone corrisponde.

D: Come si crea un account LVFS?

Consulta la documentazione LVFS su Come ottenere un account.

D: Come faccio a caricare i file CAB su LVFS?

Consulta la documentazione di LVFS relativa al caricamento del firmware.

D: Come faccio ad assicurarmi che un firmware sia per una periferica specifica?

Ciò è possibile tramite il file di configurazione più noto. Per ulteriori informazioni, consulta la sezione Best Known Configuration di fwupd.

D: Come posso testare l'aggiornamento di fwupd prima di caricarlo su LVFS?

Una volta inviate le modifiche al plug-in e incorporata la versione selettiva di fwupd nell'immagine di test di ChromeOS, puoi accedere all'immagine di test tramite ChromeOS Partner Frontend (CPFE) (richiede un account di dominio partner di Google Corp. Contatta i TAM per accedere a CPFE).

Consulta la documentazione LVFS Test del firmware su ChromeOS. In alternativa, puoi anche eseguire test fwupd con Moblab.

D: Come viene comunicato a un utente che è disponibile un aggiornamento firmware per la sua periferica?

L'utente riceverà una notifica che lo informa della disponibilità di un aggiornamento in base all'urgenza assegnata all'aggiornamento in LVFS. Il comportamento è il seguente:

Urgenza Comportamento delle notifiche
Bassa L'utente non riceverà notifiche e dovrà controllare manualmente la presenza di aggiornamenti.
Media
Alta
Critico La notifica verrà visualizzata a ogni avvio finché l'aggiornamento non sarà completato.

D: Gli aggiornamenti di fwupd avvengono automaticamente?

No. Tutti gli aggiornamenti di fwupd vengono avviati dall'utente e non vengono eseguiti durante l'avvio o automaticamente.

D: Qual è il vantaggio della specifica DS20?

Al momento verificato solo per le periferiche USB. Se utilizzi lo stesso protocollo che hai usato con l'altro hardware, funzionerà con un descrittore DS20.

I fornitori possono inserire i dati del file di quirk nel descrittore USB anziché nel progetto fwupd. In questo modo, il dispositivo USB viene inserito, fwupd legge i dati del descrittore, abbina il plug-in, enumera il dispositivo senza dover chiedere al fornitore di inviare una patch a fwupd e attendere l'aggiornamento di fwupd.

D: DS20 è un'opzione alternativa solo per le modifiche ai file di quirk?

Sì, la maggior parte delle volte l'hardware futuro richiede solo l'aggiunta di VID e PID a un plug-in esistente, anziché modifiche al codice. Se sono necessarie modifiche al codice, il fornitore deve inviare le modifiche al plug-in a fwupd.

Appendici

  1. Guida per gli sviluppatori
  2. Assistenza per gli sviluppatori
  3. Introduzione a Git e Gerrit per i collaboratori di ChromeOS
  4. Modifiche al codice sorgente
  5. Procedura di revisione/approvazione di Gerrit
  6. fwupd Integration Handbook

Cronologia delle revisioni

Data Versione Note
2025-07-23 2.4.3 Aggiorna il flusso di lavoro del caso d'uso 1
2024-10-18 2.4.2 Aggiorna le immagini e i passaggi del flusso di lavoro fwupd per caricare il certificato client
2024-07-23 2.4.1 Aggiornamenti della formattazione.
2024-06-26 2,4 Aggiorna il flusso di lavoro di fwupd uprev (caso d'uso 1).(pubblicato insieme alla versione 2.4.1)
2024-06-17 2.3 Aggiorna il flusso di lavoro del report firmato. (pubblicato insieme alla versione 2.4.1)
2024-02-01 2.2 Ripubblicazione sulla nuova piattaforma; aggiornamenti minori della formulazione.
2023-10-12 2.1 Sono state aggiunte immagini nei casi 1 e 2, fwupd Integration Handbook ospitato nel sito partner
2022-08-14 2.0 Pubblicazione iniziale del sito del partner