有没有办法防止升级内核时出现 "missing firmware" 问题?
Is there a way to prevent the "missing firmware" problem showing up when upgrading kernel?
我正在设置我自己的服务器,我决定定制我自己的内核。
make install
后,终端出现警告信息:
W: Possible missing firmware /lib/firmware/i915/bxt_huc_ver01_8_2893.bin for module i915
我知道如何在升级内核后修复它,但我想了解如何防止它。不知道有没有什么方法可以达到这样的效果,有的话请赐教。
我会非常感谢你的。
简答,安装或升级linux-firmware
以获得该固件。
警告实际上来自 mkinitramfs(8)
钩子。它查看要安装在 initramfs 中的模块,并使用内核源代码中的 MODULE_FIRMWARE()
宏检查模块列出的所有可能需要的固件文件,并将固件文件与模块一起安装在 initramfs 中。如果找不到固件,您会收到警告。
当探测安装在 initramfs 中的模块时,还没有可用的 rootfs,您可能缺少模块所需的固件文件。根据模块和固件的不同,您新安装的内核可能无法运行。
如果在内核安装或升级后将固件文件安装到 rootfs 以解决问题,则需要 运行 update-initramfs(8)
将固件也复制到 initramfs。
在这种特定情况下,i915 模块只会在您 运行在 Broxton 平台上使用该模块时才会使用该模块,即使在默认情况下也不会使用它。
防止警告的最佳选择是在内核安装时在 rootfs 中提供固件(通常在 /lib/firmware
下)。另一种选择是从 initramfs 中排除相关模块,然后在它可用时从 rootfs 中探测它。显然,您也可以修补工具以跳过警告,或修补驱动程序以不使用 MODULE_FIRMWARE()
列出文件,但最好避免这些黑客行为。
我正在设置我自己的服务器,我决定定制我自己的内核。
make install
后,终端出现警告信息:
W: Possible missing firmware /lib/firmware/i915/bxt_huc_ver01_8_2893.bin for module i915
我知道如何在升级内核后修复它,但我想了解如何防止它。不知道有没有什么方法可以达到这样的效果,有的话请赐教。
我会非常感谢你的。
简答,安装或升级linux-firmware
以获得该固件。
警告实际上来自 mkinitramfs(8)
钩子。它查看要安装在 initramfs 中的模块,并使用内核源代码中的 MODULE_FIRMWARE()
宏检查模块列出的所有可能需要的固件文件,并将固件文件与模块一起安装在 initramfs 中。如果找不到固件,您会收到警告。
当探测安装在 initramfs 中的模块时,还没有可用的 rootfs,您可能缺少模块所需的固件文件。根据模块和固件的不同,您新安装的内核可能无法运行。
如果在内核安装或升级后将固件文件安装到 rootfs 以解决问题,则需要 运行 update-initramfs(8)
将固件也复制到 initramfs。
在这种特定情况下,i915 模块只会在您 运行在 Broxton 平台上使用该模块时才会使用该模块,即使在默认情况下也不会使用它。
防止警告的最佳选择是在内核安装时在 rootfs 中提供固件(通常在 /lib/firmware
下)。另一种选择是从 initramfs 中排除相关模块,然后在它可用时从 rootfs 中探测它。显然,您也可以修补工具以跳过警告,或修补驱动程序以不使用 MODULE_FIRMWARE()
列出文件,但最好避免这些黑客行为。