版本:2.4.2
上次更新時間:2024 年 10 月 18 日
總覽
本指南旨在說明如何設定 ChromeOS UI 支援的 fwupd 韌體更新。
背景
fwupd 是開放原始碼守護程式,可在以 Linux 為基礎的系統上執行周邊裝置和其他系統韌體更新。fwupd 是 ChromeOS 更新周邊裝置韌體的機制。
fwupd 更新酬載包含儲存在 Linux 供應商韌體服務 (LVFS) 中的 .cab
檔案。在 Linux 中,只要將 fwupd 更新檔案上傳至 LVFS,即可讓所有人使用。不過,為了在 ChromeOS 中提供更新,ChromeOS 團隊會另外驗證並核准新更新,確保提供最佳使用者體驗。
fwupd 處理程序
以下內容僅適用於已將樣本送至 Allion 的 WWCB 認證周邊裝置。
如果 ChromeOS 中目前的 fwupd 版本不支援周邊裝置,請按照使用情境 1 和使用情境 2 中的指示操作。如果 ChromeOS 中目前的 fwupd 版本已支援周邊裝置,請跳至用途 2。
用途 1:ChromeOS 目前的 fwupd 版本不支援周邊裝置
ChromeOS 的現行版本尚未支援週邊裝置。
ODM 和原始設備製造商 (OEM) 直接與晶片組供應商合作,將外掛程式變更提交至 fwupd 程式碼集。
定期將最新的版本複製到 ChromeOS,並採用 Chromium 發布時間表。
如果在即將發布的 Chromium 版本停用功能凍結日期後,提交外掛程式變更、錯誤修正或緊急檔案變更,但下個 ChromeOS 版本的異動優先度較高,則:
- 前往合作夥伴問題追蹤工具。
- 使用 Google 合作夥伴網域帳戶登入。
按一下左側選單中的「Create Issue」按鈕,即可在元件 (
ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd
) 中建立錯誤。這樣即可通知 ChromeOS 團隊將更新版本更新至 ChromeOS。請在錯誤中提供下列資訊:
錯誤名稱:
[PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
錯誤說明:
- fwupd 版本號碼,包含外掛程式變更:
- 這個應用程式新增哪些功能?
- 修正了哪些錯誤?
- 支援哪些硬體?
- 裝置廠牌/型號
- VID、PID
- GUID (全域專屬 ID)
- fwupd 版本號碼,包含外掛程式變更:
螢幕截圖範例:
我們會進行錯誤分類,並整合 fwupd 的特定版本,讓 Google 工程師測試 ChromeOS 映像檔。
該錯誤會指派給 Chrome OS 中的 fwupd 版本,這樣可確保更新作業不會中斷。
- 測試團隊會挑選 5 項產品,並使用 ChromeOS 的測試映像檔升級/降級韌體。
錯誤中會提供驗證結果。
- 如果升級期間發現錯誤而導致驗證失敗,系統會將錯誤指派回 Google 工程師。
測試完成後,當變更清單獲得核准,fwupd 的升級版就會推送至 Canary 管道。
- 請在錯誤中留言,瞭解 ChromeOS 的哪個版本包含升級版 fwupd。您也可以使用 CL Finder 在 ChromeOS 合作夥伴主控台 (CPCon) 中搜尋版本 (需要 Google 公司合作夥伴網域帳戶,如要存取 CPCon,請與 TAM 聯絡)。
用途 2:ChromeOS 目前版本的 fwupd 支援周邊裝置
ChromeOS 目前的 fwupd 版本已支援周邊裝置,並提供新的韌體。
建立
.cab
檔案。所有韌體都會以機櫃封存檔的形式上傳。除了韌體二進位檔之外,LVFS 預期封存檔至少會包含一個 .metainfo.xml 檔案,用於說明目標裝置和韌體。您可以在 Linux 上使用 gcab (用於建立 Cabinet 檔案的程式庫) 建立 Cabinet 封存檔。
將經過測試且最終的韌體更新 (
.cab
檔案) 上傳至 LVFS。韌體升級應透過已簽署的報告在 ChromeOS 上進行測試。
將憑證上傳至 LVFS,將 DUT 連結至您的帳戶。
- 使用您的帳戶登入 LVFS。
- 按一下右上方的「使用者」圖示,或按一下 https://fwupd.org/lvfs/profile{:.external}。
- 按一下「個人資料設定」。
在 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/
在 LVFS 網站的「Client Certificates」部分,按一下「Upload Certificate」按鈕,然後上傳憑證。
- 在您用於測試的每部 Chromebook 上重複執行這些步驟 (您可以為不同的電腦上傳多個憑證)。
透過 DUT 測試升級並上傳已簽署的報表。
如要測試及上傳報表,請執行下列指令,並在系統提示時進行驗證。
fwupdmgr refresh
fwupdmgr update
fwupdmgr report-history --sign
注意:如果您已上傳沒有
--sign
標記的報表,可以使用 fwupdmgr report-history--sign --force
將相同的報表重新上傳至 LVFS。fwupdmgr report-history --sign --force
您可以傳遞
--verbose
來查看伺服器回應。fwupdmgr report-history --force --verbose
在確認對話方塊中按一下「是」。
- 這樣就能將已簽署的報表上傳到自己的帳戶。
- 如要確認,請前往 https://fwupd.org/lvfs/dashboard,然後按一下左上方「Home」部分下方的「Signed Reports」。
確認 LVFS 上的韌體版本已簽署報告
- 在 LVFS 上搜尋週邊裝置。
- 如果上傳的已簽署報告在使用 Chromebook 成功升級週邊裝置的韌體版本後,「測試者」部分會顯示 ChromeOS 版本、檔案版本和實體。請參閱範例。
- 確認「Release Gating」顯示綠色勾號「可供 ChromeOS 使用者使用」。
自 M126 起,只有在韌體在 LVFS 上有已簽署的報告 (經 ChromeOS 測試) 時,ChromeOS 使用者才能取得韌體更新。
- 24 小時後,使用者就能將周邊裝置連接至 Chromebook,並透過 ChromeOS UI 升級韌體。依序前往「設定」>「關於 ChromeOS」>「韌體更新」。
- 注意:假設在特定里程碑中,ChromeOS 上已提供所有必要的外掛程式變更,則可進行韌體更新。
常見問題
問:哪些 Chromebook 支援 fwupd?
搭載 M101 以上版本的所有 ChromeOS 裝置。
問:如何查看 ChromeOS 整合了哪個版本的 fwupd?
- 透過瀏覽器開啟
chrome://system
(M109 以上版本)。- 前往
fwupd_version
。
- 前往
- 或者,透過開發人員模式、根控制台,
- 類型:
fwupdmgr --version
- 請尋找
runtime org.freedesktop.fwupd
- 類型:
問:檔案更新程序需要多久的時間?
fwupd 升級要求遵循 Chromium 發布時程,請務必在分支功能凍結截止日期前提交 fwupd 升級要求。
問:我可以在哪裡進一步瞭解 ChromeOS 發布時間表?
查看 Chromium 發布時間表。
問:如何將 Chromebook 切換成開發人員模式?
- 關閉 Chromebook。
- 按住 esc 鍵 + 重新整理鍵,然後按下電源鍵。
- 注意:在某些 Chromebook 上,請按下 esc 鍵 + → (右鍵箭頭鍵),然後按下電源鍵。
- 裝置會開啟,這時應會顯示復原畫面 / 模式。
- 接著按下 ctrl + d,然後按下 Enter 鍵接受。
- 注意:如果在按下 ctrl + d 之前按下任何鍵,裝置就不會轉換至開發人員模式。
- 該裝置會重新啟動,嗶聲並顯示「您的系統正在轉換為開發人員模式」。
- 大約 30 秒後,畫面上會顯示「Preparing system for Developer mode」。
- 最後 (視磁碟大小而定,可能需花費 10 分鐘至 1 小時以上),裝置會重新啟動並進入一般歡迎畫面。
- 按下 ctrl + alt + → (向右鍵) 鍵,即可取得 Command Prompt。
- 注意:在某些 Chromebook 上,則會使用 ctrl + alt + refresh 鍵。
- 如要返回瀏覽器檢視畫面,請按 ctrl+Alt+← (向左鍵)。
- 詳情請參閱「[開發人員模式]」
問:如何將 Chromebook 切換為一般模式 (例如停用開發人員模式)?
重新啟動裝置,並在韌體畫面中按下空格鍵。
詳情請參閱「[開發人員模式]」。
問:ChromeOS 是否支援透過 fwupd 降級?
不會。如果 fwupd 的正式版或韌體中斷,您必須透過 https://fwupd.org/lvfs/dashboard 刪除已簽署的報告。每次提交外掛程式變更和/或推出新韌體時,都很重要要進行測試。確保基礎版本韌體一律可透過 LVFS 穩定版的遠端取得。
問:如何得知哪些 ChromeOS 版本支援哪些 fwupd 更新?
您可以在錯誤中留言,詢問納入變更的建構版本為何,Google 工程師應該就能為您提供該資訊。您也可以使用 CL Finder 在 ChromeOS 合作夥伴控制台 (CPCon) 中搜尋版本 (需要 Google 公司合作夥伴網域帳戶,如要存取 CPCon,請與 TAM 聯絡)。您可以交叉比對 ChromeOS 合作夥伴前端 (CPFE) 的版本,瞭解該版本對應的里程碑。
問:如何建立 LVFS 帳戶?
請參閱取得帳戶 LVFS 說明文件。
問:如何將計程車檔案上傳到 LVFS?
請參閱「上傳韌體」LVFS 說明文件。
問:如何確保特定週邊裝置的韌體?
您可以透過最常見的設定檔執行這項操作。詳情請參閱 fwupd Best Known Configuration (最佳已知設定)。
問:將 Fwupd 更新上傳至 LVFS 之前,該如何測試 Fwupd 更新?
在提交外掛程式變更,並將所選 fwupd 版本整合至 ChromeOS 測試映像檔後,您就可以透過 ChromeOS 合作夥伴前端 (CPFE) 存取測試映像檔 (需要 Google 公司合作夥伴網域帳戶 - 請聯絡 TAM 取得 CPFE 存取權)。
請參閱 LVFS 說明文件「ChromeOS 上的韌體測試」。您也可以使用 Moblab 執行 fwupd 測試。
問:如何通知使用者周邊裝置有韌體更新可供下載?
系統會根據在 LVFS 中指派的更新緊急程度,向使用者發送通知,說明有可用的更新。行為如下:
緊急程度 | 通知行為 |
---|---|
低 | 使用者不會收到通知,必須手動檢查更新。 |
中 | |
高 | |
重要 | 更新完成前,系統會在每次開機時顯示通知。 |
問:fwupd 更新是否會自動執行?
否。所有 fwupd 更新都是由使用者啟動,不會在啟動期間或自動執行。
問:DS20 規格有什麼優點?
目前僅針對 USB 周邊裝置進行驗證,如果您使用與其他硬體相同的通訊協定,則只能搭配 DS20 描述元運作。
供應商可以將異常檔案資料放入 USB 描述元,而非 fwupd 專案。這樣一來,當 USB 裝置插入時,fwupd 會讀取描述元資料,比對外掛程式,並列舉裝置,而不需要供應商將修補程式提交至 fwupd,也不需要等待 fwupd 更新。
問:DS20 是不是唯一可變更檔案替代方案的替代選項嗎?
是的。大多數時下硬體只需要將 VID&PID 新增至現有的外掛程式,而非實際的程式碼變更即可。如果需要變更程式碼,供應商必須將外掛程式變更提交至 fwupd。
附錄
修訂版本記錄
日期 | 版本 | 注意事項 |
---|---|---|
2024-10-18 | 2.4.2 | 更新工作流程圖片和上傳用戶端憑證的步驟 |
2024-07-23 | 2.4.1 | 格式更新。 |
2024-06-26 | 2.4 | 更新 fwupd 升級前工作流程 (用途 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 | 合作夥伴網站初始出版 |