我刚刚从 kernel.org 编译了内核 3.10.19。已启用对 bnx2 的支持。在我的服务器上,当我尝试启动 eth0 接口时,出现以下错误:
bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
我/lib/firmware/bnx2
有以下文件:
bnx2-mips-06-6.2.1.fw
bnx2-rv2p-09-6.0.17.fw
bnx2-mips-09-6.2.1a.fw
bnx2-rv2p-06-6.0.15.fw
bnx2-rv2p-09ax-6.0.17.fw
文件 bnx2-mips-09-6.2.1b.fw 丢失。
如果我做 :
cp bnx2-mips-09-6.2.1a.fw bnx2-mips-09-6.2.1b.fw
它正在工作,但这不是一个干净的解决方案。
我一直在阅读以下帖子:https://lkml.org/lkml/2012/4/18/142但我不确定是否理解。
解决问题的最佳方法是什么?
答案1
在 Debian 8.1 上:
安装 bnx2 驱动程序,记得添加非免费存储库。
apt-get install firmware-bnx2
重新启动机器。
这解决了我的问题。
bnx2 包: https://debian.pkgs.org/10/debian-nonfree-i386/firmware-bnx2_20190114-2_all.deb.html
答案2
如果是 RHEL 6
add_drivers+="bnx2"
添加这一行/etc/dracut.conf
- 备份 initramfs
- 运行
dracut –f
以构建 initramfs 映像 - 重启
这将解决该问题。
答案3
在之前的答案中添加一些细节:
上面列出的 RHEL 6 解决方案确实有效,但是,您还必须拥有固件文件。您不能只将以下行添加到 /etc/dracut.conf 中:
add_drivers+="bnx2"
并备份您的initramfs
,然后运行:
dracut -f
并期望默认系统能够正常工作。我找到了所需的固件副本这里。还有其他版本,所以如果这不是您正在寻找的确切版本,请搜索一下,很可能就在那里。
我暂存该文件/lib/firmware/bnx2
,然后按照上述说明操作,然后重新启动。现在这对我来说适用,在 CentOS 6.8 上。使用来自 elrepo 的 3.10.x 内核。