透過 fwupd 更新周邊裝置韌體

版本:2.4.3
上次更新時間:2025 年 7 月 23 日

總覽

本指南旨在說明如何設定 ChromeOS UI 支援的 fwupd 韌體更新。

fwupd 流程圖

背景

fwupd 是開放原始碼的常駐程式,可在 Linux 系統上更新周邊裝置和其他系統的韌體。ChromeOS 就是透過 fwupd 更新周邊裝置韌體。

fwupd 更新有效負載包含儲存在 Linux 供應商韌體服務 (LVFS) 中的 .cab 檔案。在 Linux 中,只要將 fwupd 更新上傳至 LVFS,即可廣泛提供更新。不過,如要在 ChromeOS 中提供更新,ChromeOS 團隊會另外驗證新更新並加入允許清單,確保使用者享有最佳體驗。

fwupd 程序

以下內容僅適用於已通過 WWCB 認證,且已將樣品送交 Allion 的周邊裝置。

如果 ChromeOS 目前的 fwupd 版本不支援周邊裝置,請按照使用情境 1 使用情境 2 中的指示操作。如果 ChromeOS 目前的 fwupd 版本已支援周邊裝置,請跳至用途 2

用途 1:ChromeOS 目前的 fwupd 版本不支援周邊裝置

ChromeOS 目前的 fwupd 版本尚未支援該周邊裝置。

圖片

  1. ODM 和 OEM 可直接與晶片組供應商合作,將外掛程式變更提交至 fwupd 程式碼集。

    1. 請參閱 fwupd 整合手冊 (第二步 - 使用 fwupd)
    2. 外掛程式變更:範例 1範例 2
    3. .quirk 檔案中相符的 VIDs:PIDs範例 3
      • 如果 USB 周邊裝置支援現有外掛程式,您可以按照 DS20 規格操作,不必變更權宜措施檔案。
    4. 請 fwupd 的維護人員合併產生的外掛程式和怪異變更。
    5. 等待 fwupd 的官方點發布版本 (即 1.8.4),請記下版本。
  2. fwupd 版本會定期鏡像到 ChromeOS,並遵循 Chromium 發布時間表

  3. 如果您在即將發布的 Chromium 版本功能凍結截止日期後,提交外掛程式變更、錯誤修正或特殊情況檔案變更,但這些變更對下一個 ChromeOS 版本而言是高優先順序,則:

    1. 前往合作夥伴問題追蹤工具
    2. 使用 Google 合作夥伴網域帳戶登入。
    3. 按一下左側選單中的「建立問題」按鈕 (ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd),在元件中建立錯誤。這會通知 ChromeOS 團隊在 ChromeOS 中升級 fwupd 版本。

      請在錯誤中提供下列資訊:

      1. 錯誤標題:

        [PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
        
      2. 錯誤說明:

        1. fwupd 版本號碼 (包含外掛程式變更):
          • 新增了哪些功能?
          • 修正了哪些錯誤?
          • 支援哪些硬體?
        2. 裝置廠牌/型號
        3. VID、PID
        4. GUID (全域專屬 ID)
      3. 螢幕截圖範例:

        fwupd uprev 錯誤的螢幕截圖

  4. Google 工程師會對錯誤進行分類,並將選取的 fwupd 版本併入 ChromeOS。

  5. 如果變更清單獲得核准,系統就會將升級後的 fwupd 版本發布至 Canary 管道。

    • 在錯誤中留言,瞭解哪個 ChromeOS 建構版本包含升級後的 fwupd 版本。您也可以使用 CL Finder 在 ChromeOS 合作夥伴控制台 (CPCon) 中搜尋建構版本 (需要 Google 公司合作夥伴網域帳戶,請洽詢 TAM,取得 CPCon 的存取權)。

用途 2:ChromeOS 現行版本的 fwupd 支援周邊裝置

ChromeOS 目前的 fwupd 版本已支援該周邊裝置,且有新韌體可用。

圖片

  1. 建立 .cab 檔案。

    所有韌體都會上傳為 Cabinet 封存檔。除了韌體二進位檔,LVFS 也會要求封存檔至少包含一個 .metainfo.xml 檔案,用於描述目標裝置和韌體。您可以在 Linux 上使用 gcab (用於建立櫃子檔案的程式庫) 建立櫃子封存檔。

  2. 將測試完畢的最終韌體更新 (.cab 檔案) 上傳至 LVFS。

    1. 確認穩定遙控器有可用的更新。

      如果該檔案位於私人禁運測試遠端, 就不會新增至 ChromeOS 鏡像。

    2. 透過簽署的報告,在 LVFS 中標示為已驗證的更新。

      確認已新增裝置測試。

    3. 如果是首次上傳韌體,請確保 LVFS 的穩定遠端至少有 2 個韌體,分別是基本韌體 (用於測試降級) 和新韌體 (用於測試升級)。

  3. 應透過簽署報告在 ChromeOS 上測試韌體升級。

    1. 將憑證上傳至 LVFS,將 DUT 連結至帳戶。

      1. 使用帳戶登入 LVFS
      2. 按一下右上方的「使用者」圖示,或點選 https://fwupd.org/lvfs/profile{:.external}。
      3. 按一下「個人資料設定」
      4. 在 Chromebook 上找出用戶端憑證

        • 注意:Chromebook 必須處於開發人員模式
        • 按下 Ctrl+Alt+T 鍵,啟動 ChromeOS 開發人員殼層
        • Type:

          shell
        • 前往 /var/lib/fwupd/pki

          cd /var/lib/fwupd/pki
        • client.pem 複製到 Chromebook 上的資料夾,例如: Downloads

          cp client.pm /home/chronos/user/MyFiles/Downloads/
    2. 在 LVFS 網站的「用戶端憑證」區段中,按一下「上傳憑證」按鈕,然後上傳憑證。

      1. 在用於測試的每部 Chromebook 上重複上述步驟 (你可以為不同電腦上傳多個憑證)。
    3. 透過 DUT 測試升級及上傳簽署的報告。

      1. 如要測試及上傳報表,請執行下列指令,並在系統提示時進行驗證。

        fwupdmgr refresh
        fwupdmgr update
        fwupdmgr report-history --sign
      2. 注意:如果已上傳不含 --sign 標記的報表,可以使用 fwupdmgr report-history --sign --force 將相同報表重新上傳至 LVFS。

        fwupdmgr report-history --sign --force
        • 您可以傳遞 --verbose 來查看伺服器回應。

          fwupdmgr report-history --force --verbose
      3. 在確認對話方塊中,按一下「是」

        • 這樣一來,簽署的報告就會上傳到你的帳戶。
        • 如要確認,請前往 https://fwupd.org/lvfs/dashboard,然後點選左上角「首頁」部分下方的「已簽署的報告」
    4. 確認 LVFS 上的韌體版本已簽署報告

      • 在 LVFS 上搜尋周邊裝置。
      • 如果上傳的簽署報告是在使用 Chromebook 成功升級周邊裝置的韌體版本後產生,則「Tested By」(測試者)部分會顯示 ChromeOS 版本、fwupd 版本和實體。請參閱範例
      • 確認「發布閘道」顯示綠色勾號,並標示「適用於 ChromeOS 使用者」。
    5. 自 M126 版起,如果韌體在 LVFS 上有已簽署的報告 (已透過 ChromeOS 測試),ChromeOS 使用者才能更新韌體。

      • 24 小時後,使用者即可將周邊裝置連上 Chromebook,並透過 ChromeOS 使用者介面升級韌體。依序前往「設定」>「關於 ChromeOS」>「韌體更新」
      • 注意:如果 ChromeOS 適用於特定里程碑,且具備所有必要的外掛程式變更,韌體更新就會推出。

如要進一步瞭解簽署的報表,請前往 LVFS

常見問題

問:哪些 Chromebook 支援 fwupd?

搭載 M101 以上版本的 ChromeOS 裝置。

問:如何找出與 ChromeOS 整合的 fwupd 版本?

  1. 透過瀏覽器開啟 chrome://system (M109 以上版本)。
    1. 前往 fwupd_version
  2. 或透過開發人員模式、根層級控制台,
    1. 輸入「fwupdmgr --version
    2. 尋找車輛 runtime org.freedesktop.fwupd

問:fwupd 升級程序需要多久時間?

fwupd uprev 遵循 Chromium 發布時間表,請務必在分支功能凍結截止日期前提交 fwupd uprev 要求。

問:哪裡可以取得更多有關 ChromeOS 發布時間表的資訊?

Chromium 發布時間表中。

問:如何將 Chromebook 切換為開發人員模式?

  1. 關閉 Chromebook。
  2. 按住 Esc 鍵 + 重新整理鍵,然後按下電源鍵。
    • 注意:在某些 Chromebook 上,請依序按住 Esc 鍵 + (向右箭頭鍵),然後按下電源按鈕。
  3. 裝置會開啟,並顯示「復原」畫面 / 模式。
  4. 然後按下 Ctrl + D,接著按下 Enter 鍵接受。
    • 注意:如果先按下任何鍵,再按 Ctrl+D 鍵,裝置就不會進入開發人員模式。
  5. 裝置會重新啟動並發出音效,螢幕上會顯示「系統正在轉換至開發人員模式」。
  6. 大約 30 秒後,畫面會顯示「Preparing system for Developer mode」(準備進入開發人員模式)。
  7. 最終 (視磁碟大小而定,可能需要 10 分鐘到 1 小時以上),裝置會重新啟動並顯示一般歡迎畫面。
  8. 取得命令提示字元:按下 Ctrl+Alt+ (向右鍵)。
    • 注意:在某些 Chromebook 上,這組快速鍵是 Ctrl+Alt+重新整理鍵。
    • 如要返回瀏覽器檢視畫面,請按下 Ctrl+Alt+ (向左鍵)。
  9. 詳情請參閱「[開發人員模式]」

問:如何將 Chromebook 切換至一般模式 (即停用開發人員模式)?

重新啟動裝置,並在韌體畫面中按下空格鍵。

詳情請參閱 [開發人員模式]。

問:ChromeOS 是否支援透過 fwupd 降級?

否。如果 fwupd 或韌體的正式版發生問題,您必須透過 https://fwupd.org/lvfs/dashboard 刪除已簽署的報告。每當提交外掛程式變更和/或有新韌體可用時,請務必進行測試。確保 LVFS 穩定遙控器上隨時提供韌體基本版本。

問:如何得知哪些 ChromeOS 版本支援哪些 fwupd 更新?

您可以在錯誤中留言,詢問變更內容納入哪個建構版本,Google 工程師應能提供相關資訊。您也可以使用 CL Finder 在 ChromeOS 合作夥伴控制台 (CPCon) 中搜尋建構版本 (需要 Google 公司合作夥伴網域帳戶,請與 TAM 聯絡以取得 CPCon 存取權)。您可以在 ChromeOS 合作夥伴前端 (CPFE) 上交叉參照建構版本,查看對應的里程碑。

問:如何建立 LVFS 帳戶?

請參閱 Getting an Account LVFS 說明文件。

問:如何將 cab 檔案上傳至 LVFS?

請參閱 上傳韌體 LVFS 說明文件。

問:如何確保韌體適用於特定周邊裝置?

您可以透過最瞭解的設定檔執行這項操作。詳情請參閱 fwupd 最佳已知設定

問:如何先測試 fwupd 更新,再上傳至 LVFS?

提交外掛程式變更,並將選取的 fwupd 版本併入 ChromeOS 測試映像檔後,您就能透過 ChromeOS 合作夥伴前端 (CPFE) 存取測試映像檔 (需要 Google 公司合作夥伴網域帳戶,如要存取 CPFE,請與 TAM 聯絡)。

請參閱 LVFS 說明文件「在 ChromeOS 上測試韌體」。你也可以使用 Moblab 執行 fwupd 測試

問:如何通知使用者周邊裝置有可用的韌體更新?

系統會根據 LVFS 中更新的緊急程度,通知使用者有更新可用。行為如下:

急迫性 通知行為
使用者不會收到通知,必須手動檢查更新。
最高 更新完成前,每次開機都會顯示通知。

問:fwupd 會自動更新嗎?

不會。所有 fwupd 更新都是由使用者啟動,不會在開機期間或自動進行。

問:DS20 規格有哪些優點?

目前僅驗證 USB 周邊裝置,如果你使用與其他硬體相同的通訊協定,只要使用 DS20 描述元即可。

供應商可將特殊情況檔案資料放入 USB 描述元,而非 fwupd 專案。這樣一來,插入 USB 裝置後,fwupd 就能讀取描述元資料、比對外掛程式,並列舉裝置,不必請供應商向 fwupd 提交修補程式,也不必等待 fwupd 升級。

問:DS20 是不是只用來替代怪異檔案變更的選項?

可以。大多數情況下,只要將 VID 和 PID 新增至現有外掛程式,即可支援日後的硬體,不需要實際變更程式碼。如果需要變更程式碼,供應商必須向 fwupd 提交外掛程式變更。

附錄

  1. 開發人員指南
  2. 開發人員支援
  3. CrOS 貢獻者適用的 Git 和 Gerrit 簡介
  4. 變更原始碼
  5. Gerrit 審查/核准程序
  6. fwupd 整合手冊

修訂版本記錄

日期 版本 附註
2025-07-23 2.4.3 更新「適用情況 1」工作流程
2024-10-18 2.4.2 更新 fwupd 工作流程圖片和上傳用戶端憑證的步驟
2024-07-23 2.4.1 格式更新。
2024-06-26 2.4 更新 fwupd uprev 工作流程 (用途 1)。(與 2.4.1 一併發布)
2024-06-17 2.3 更新簽署報表工作流程。(與 2.4.1 一併發布)
2024-02-01 2.2 在新平台上重新發布;小幅更新措辭。
2023-10-12 2.1 在案例 1 和案例 2 中新增圖片,合作夥伴網站代管的 fwupd 整合手冊
2022-08-14 2.0 首次發布合作夥伴網站