韌體指南¶
切換到較新核心的使用者不應安裝較新的韌體檔案以保持其硬體正常工作。 同時,更新的韌體檔案不得對舊核心版本的使用者造成任何迴歸。
使用 linux-firmware 中的韌體的驅動程式應遵循本指南中的規則。(如果對韌體的控制有限,即公司不支援 Linux,韌體來自其他地方,那麼當然這些規則將不嚴格適用。)
韌體檔案的設計方式應允許檢查韌體 ABI 版本更改。 建議韌體檔案至少使用主版本/次版本進行版本控制。 建議 linux-firmware 中的韌體檔案以某些裝置特定名稱命名,並且僅包含主版本。 韌體版本應儲存在韌體標頭中,或者作為例外,作為韌體檔名的一部分,以便驅動程式檢測到任何非 ABI 修復/更改。 linux-firmware 中的韌體檔案應使用最新的相容主版本覆蓋。 較新的主版本韌體應與載入該主版本號的所有核心保持相容。
如果核心對硬體的支援通常處於非活動狀態,或者該硬體不可供公眾消費,則可以忽略此問題,直到啟用該硬體的第一個核心版本。 這意味著在核心不保留對舊主版本向後相容性的情況下,不會出現主版本升級。 次版本升級不應引入較新核心非可選依賴的新功能。
如果安全修復需要鎖定步韌體和核心修復才能成功,那麼 linux-firmware 倉庫中當前受支援的穩定版/LTS 核心所需的所有受支援的主版本都應使用安全修復進行更新。 核心補丁應檢測韌體是否足夠新,以宣告安全問題是否已修復。 所有關於安全修復的溝通都應指向韌體和核心修復。 如果安全修復需要棄用舊的主版本,那麼這應該僅作為最後的選擇來完成,並且應在所有通訊中明確說明。
影響使用者 API (UAPI) 的韌體檔案不應引入破壞現有使用者空間程式的更改。 對此類韌體的更新必須確保與現有使用者空間應用程式的向後相容性。 這包括維護使用者空間程式所依賴的一致的介面和行為。