裸金属创建时报固件错误,网卡驱动 bnx2x 加载不了固件文件,导致 bond 从设备打开失败。根因是镜像里缺少驱动需要的固件,用 modinfo 查出来补上即可。
现象
创建裸金属报固件错误,带外上看,保持类似如下:
bnx2x: Can't load firmware file bnx2x/bnx2x-e2-7.13.11.0.fw
bnx2x: Error loading firmware
bond0: (slave eth110): Opening slave failed
排查
把镜像通过 qemu-nbd 挂载上来,
然后用 modinfo 查看这个驱动,
里面会列出需要的固件:
filename: /mnt/bootcoree/lib/modules/5.4.0-59-generic/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
firmware: bnx2x/bnx2x-e2-7.13.11.0.fw
firmware: bnx2x/bnx2x-e1h-7.13.11.0.fw
firmware: bnx2x/bnx2x-e1-7.13.11.0.fw
根因与解决
根因是镜像里缺少 bnx2x 驱动需要的固件文件。
把 modinfo 查到的固件下载下来,
放到镜像的 /lib/firmware 对应目录中,就可以了。
小结
- 网卡驱动加载固件失败,会导致 bond 从设备打开失败;
- 用
modinfo查看驱动模块声明的firmware字段,就能知道需要哪些固件文件; - 把固件放到镜像的
/lib/firmware对应目录即可解决; - 排查固件类问题,
modinfo是最直接的入口。