Sunday, May 8, 2016

RHEL 6 fails to load the NIC firmware driver at boot time

這是筆者早前遇到奇怪問題。一台RHEL 6 sever重啟完之後無緣無故少了其中一個NIC。

這是error log:

bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011)
bnx2 0000:04:00.0: PCI INT A -> GSI 28 (level, low) -> IRQ 28
bnx2 0000:04:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1a.fw
bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1a.fw"

google了一下發現原來是memory fragmentation問題。原因是OS load scsi module的時候需要把所有lun寫入memory,如果lun太多,剩下的contiguous space已經不足以initialize所有NIC driver




解決辦法:
-備份/etc/dracut.conf
-在/etc/dracut.conf加入 add_driver +="bnx2"
-備份initramfs:
     cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
-然後打command: dracut -f
-reboot server,然後檢查是不是所有NIC driver都成功載入

reference:
https://access.redhat.com/solutions/69540





No comments:

Post a Comment