dracut添加指定固件

文章目录

  • linux-firmware
    • 1、固件介绍
    • 2、Microcode updates for CPUs
    • 3、如何添加固件

linux-firmware

1、固件介绍

  • 存放在 /lib/firmware,固件来自kernel 仓库
  • 更多的固件可以参考git仓库,https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain
  • 想要获取固件,无论是从仓库或者浏览器中下载你所需要的固件,支持多种系统固件,可以参考,https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
  • 还有一些特殊的固件,像 Intel microcode 和 指定的 wifi 设备,上面仓库中的固件是不可用的,需要官网找一下

2、Microcode updates for CPUs

  • 通常,Microcode(指令)能被 BIOS 或 UEFI 加载,它可能会被更新到更新的版本,这些更新会直到机器关机,所以每次运用都要重启机器
  • AMD 官方提供一个检查工具,检测当前固件是否是最新版本,https://github.com/AMDESE/amd_ucode_info/blob/master/amd_ucode_info.py.
  • 官方有一个更新的脚本,可参考,https://www.linuxfromscratch.org/blfs/view/svn/postlfs/initramfs.html

3、如何添加固件

  • 添加固件后,需要添加入 initrramfs 中,当系统启动时需要使用固件,有两种方式:

    • 系统使用前:

      • 对于未启动的系统,准备做initrd 镜像的系统,添加固件到 相关目录下
      • find . | cpio -o -H newc > /boot/initrd.img,制作启动镜像
      • 添加启动镜像到 grub.cfg 中,initrd /boot/initrd.img
    • 系统使用后:

      • 添加固件到 相关目录下
      • 使用 dracut 或 mkinitrd,重新生成 initrd
      • 重启机器
    • dracut添加指定固件_第1张图片

    • ctl 环境,添加一个 ice 固件:

      • lsinitrd /boot/initramfs-6.1.38-4.img |less # 未找到 ice.pkg 固件

      • * ln -s /usr/lib/firmware/intel/ice/ddp/ice-1.3.26.0.pkg /usr/lib/firmware/intel/ice/ddp/ice.pkg
        
      • dracut --add-drivers “ice” initrd_test.img # 制作测试 img

      • lsinitrd initrd_test.img |less # 新添加的 ice.pkg 固件,已经生效

      • dracut添加指定固件_第2张图片

        • 方式一:直接命令行添加
    • dracut -f --add-drivers “ice” # 重新覆盖 /boot/initramfs.img

  • 方式二:添加一个 dracut 脚本,首先在 /lib/dracut/modules.d/ 下面添加一个自己的目录99mymodule,然后在目录下创建一个脚本,当运行 dracut 时,会自动执行你的这个脚本,脚本内容可以写安装某个目录,如下

dracut添加指定固件_第3张图片

  • 方式三: 还有一种方式添加到 dracut.conf 配置文件中,加入我们添加一个ice 驱动,这样每次执行 dracut 都会自动添加相关驱动

dracut添加指定固件_第4张图片

参考:【】 Intel® 800 Series序列网卡 ice 驱动安装 - bdy - 博客园 (cnblogs.com)

你可能感兴趣的:(linux,kernel,linux,kernel)