文章目录
- 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
- 重启机器
-
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 -f --add-drivers “ice” # 重新覆盖 /boot/initramfs.img
-
-
方式二:添加一个 dracut 脚本,首先在 /lib/dracut/modules.d/ 下面添加一个自己的目录99mymodule,然后在目录下创建一个脚本,当运行 dracut 时,会自动执行你的这个脚本,脚本内容可以写安装某个目录,如下
- 方式三: 还有一种方式添加到 dracut.conf 配置文件中,加入我们添加一个ice 驱动,这样每次执行 dracut 都会自动添加相关驱动
参考:【】 Intel® 800 Series序列网卡 ice 驱动安装 - bdy - 博客园 (cnblogs.com)