固件指南¶
切换到较新内核的用户不应该为了保持其硬件正常工作而必须安装较新的固件文件。同时,更新的固件文件不得对旧内核版本的用户造成任何回归。
使用 linux-firmware 中固件的驱动程序应遵循本指南中的规则。(如果对固件的控制有限,即公司不支持 Linux,固件来自其他地方,那么当然这些规则不会严格适用。)
固件文件的设计方式应允许检查固件 ABI 版本更改。建议固件文件至少使用主/次版本进行版本控制。建议 linux-firmware 中的固件文件使用一些特定于设备的名称,并且仅使用主版本。固件版本应存储在固件头中,或者作为例外情况,作为固件文件名的一部分,以便让驱动程序检测任何非 ABI 的修复/更改。linux-firmware 中的固件文件应使用最新的兼容主版本覆盖。较新的主版本固件应与加载该主版本号的所有内核保持兼容。
如果硬件的内核支持通常处于非活动状态,或者硬件不可供公众使用,则可以忽略此情况,直到启用该硬件的第一个内核版本为止。这意味着在内核不保留对较旧主版本的向后兼容性的情况下,不会出现主版本号的升级。次版本号的升级不应引入较新内核非可选地依赖的新功能。
如果安全修复需要同步固件和内核修复才能成功,那么 linux-firmware 仓库中当前支持的稳定/LTS 内核所需的所有受支持主版本都应使用安全修复进行更新。内核补丁应检测固件是否足够新以声明安全问题已修复。所有关于安全修复的沟通都应指向固件和内核修复。如果安全修复需要弃用旧的主版本,那么这应该仅作为最后的选择,并在所有沟通中明确声明。