![内核在启动过程的哪个阶段加载固件文件?](https://linux22.com/image/165512/%E5%86%85%E6%A0%B8%E5%9C%A8%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E7%9A%84%E5%93%AA%E4%B8%AA%E9%98%B6%E6%AE%B5%E5%8A%A0%E8%BD%BD%E5%9B%BA%E4%BB%B6%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有AMD radeon
GPU 需要加载许多固件文件。
我的系统从 initrd(初始 ram 磁盘)启动,我现在很困惑在启动过程的哪个阶段需要加载固件文件。此外,内核驱动程序amdgpu
是“静态”编译的(不是作为可加载模块)。
我尝试将所有必需的固件文件复制到初始 RAM 磁盘上,但内核要么无法找到它们,要么需要在文件系统可用之前加载它们。无论如何,它报告:
faild to load firmware file amdgpu/polaris10_mc.bin
唯一可行的方法实际上是将固件文件包含在内核中(CONFIG_FIRMWARE_IN_KERNEL
):
[*] Include in-kernel firmware blobs in kernel binary
我更喜欢从磁盘加载固件文件,这是标准方法。
为什么内核不从我的初始 RAM 磁盘加载固件文件?
GPU 驱动程序是否编译为可加载模块或“静态”有什么区别吗?