CentOS 7 将许多固件包合并到“linux-firmware”中,并使它们成为内核的依赖项。有没有一种简单的方法来创建一个精简版本,删除那些我知道我不需要的固件包,因为我从未在同一平台上为 CentOS 6 安装过它们?
答案1
首先值得一提的是,linux-firmware
源RPM中的源为多个RPM,其中一个是linux-firmware
加上一些其他的(通常是WiFi相关的)固件文件。linux-firmware
如果您小心的话,看起来用于在不同 RPM 之间拆分源文件的机制可以用于进一步修剪。
这个过程看起来应该是这样的:
- 下载
linux-firmware
源RPM并安装 - 复制 SPEC 文件,更新版本(添加前缀),以便您可以将您的版本与原始版本区分开,并另存为新的 SPEC 文件。
- 复制现有的
%package -n
和%file -n
代码来创建一个新的子包(我们称之为unwanted-firmware
) - 在 SOURCE 目录中,解压源文件,以便您可以看到您想要/不想要的源
- 识别所有不需要的源(例如,我知道我正在使用的硬件中没有 WiFi 卡或 Radeon 显卡)并将适当的文件添加到文件列表中
unwanted-firmware
- 完成后,重建
linux-firmware
,记住使用更新的 SPEC 文件。
您最终应该得到较小的自定义linux-firmware
RPM、新unwanted-firmware
RPM 以及创建的其他附加固件文件linux-firmware
。
您将需要彻底测试您的新系统并检查日志等是否有损坏的固件;如果你发现一些,那么你可能需要调整你的unwanted-firmware
文件列表。