有没有一种方法可以防止在升级内核时出现“固件丢失”问题?

时间:2019-08-14 06:59:24

标签: linux-kernel firmware

我正在设置自己的服务器,因此决定自定义自己的内核。

settings之后,警告消息出现在终端上:
 firebase.firestore().settings({});

我知道升级内核后如何修复它,但是我想了解如何防止它。我不知道是否有一种方法可以达到这样的效果,请告诉我是否有一种方法。

我将非常感谢您。

1 个答案:

答案 0 :(得分:1)

简短回答,安装或升级linux-firmware以获取该固件。

警告实际上来自mkinitramfs(8)钩子。它查看要安装在initramfs中的模块,并使用内核源中的MODULE_FIRMWARE()宏检查模块列出的所有可能需要的固件文件,并将固件文件与模块一起安装在initramfs中。如果找不到固件,则会收到警告。

检测initramfs中安装的模块时,尚无rootfs,并且您可能缺少模块所需的固件文件。根据模块和固件的不同,新安装的内核可能会无法正常工作。

如果您在内核安装或升级后将固件文件安装到rootfs上,则需要运行update-initramfs(8)还将固件复制到initramfs。

在这种情况下,仅当您在Broxton平台上运行时,i915模块才会使用该模块,即使在默认情况下也不会使用该模块。

防止警告的最佳选择是在内核安装时在rootfs中提供固件(通常在/lib/firmware下)。另一个选择是从initramfs中排除相关模块,然后稍后从rootfs中对其进行探查。显然,您也可以修补该工具以跳过警告,或修补驱动程序以不使用MODULE_FIRMWARE()列出文件,但是最好避免使用它们。