標籤:centos broadcom 網卡 驅動 更新
最近探索服務器的網卡經常會自己down然後幾分鐘後有突然自己up,這個問題沒有規律的出現,且會反覆出現,無法人為重現故障環境。在更換了網線後,問題依然存在。在查閱了大量的網上資料後,懷疑是網卡啟動程式的問題,需要更新網路卡驅動程式。
Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 的驅動程式是可以熱更新的不需要重啟也不會出現閃斷,可能會有一個包的丟包,這個在業務中基本可以允許出現。
下面我記錄了處理辦法的方法:
1、使用虛擬機器安裝一個跟生產環境作業系統一致的作業系統環境
1.1 確認生產環境
我的生產環境是CentOS 6.4 64位。
# uname -r2.6.32-358.el6.x86_64
可以看到核心版本是2.6.32-358
1.2 建立虛擬機器環境
這裡就省略了虛擬機器的安裝方法了,大家可以網上找到。
2、通過yum安裝make gcc rpm-build redhat-rpm-config組件
使用yum 安裝make gcc rpm-build redhat-rpm-config組件,已經安裝過的可以跳過這步。
# yum -y install make gcc rpm-build redhat-rpm-configLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfileSetting up Install ProcessPackage 1:make-3.81-20.el6.x86_64 already installed and latest versionPackage gcc-4.4.7-11.el6.x86_64 already installed and latest versionPackage rpm-build-4.8.0-38.el6_6.x86_64 already installed and latest versionPackage redhat-rpm-config-9.0.3-42.el6.centos.noarch already installed and latest version
3、安裝kernel-devel包,yum的可能跟你的操作核心並不一致,那麼需要去網上下載和核心一致的kernel-devel
3.1 通過yum list kernel-devel檢查是否有合適的devel包
# yum list|grep kernel-develkernel-devel.x86_64 2.6.32-504.1.3.el6 updates
可以發現devel包只有2.6.32-504的,這個包會無法正常編譯適合2.6.43-358的驅動,所以我的環境不能使用。
可以去到http://rpm.pbone.net/網站搜尋kernel-devel-2.6.32-358包,如果你的核心版本和我的不一樣請搜尋適合自己的包
4、下載驅動程式的SRPM包
4.1 從官網下載最新驅動
從官網連結http://www.broadcom.com/support/ethernet_nic/downloaddrivers.php找到適合自己的驅動程式,我的是NetXtreme II 5716的,這個驅動在下載頁面上沒有直接給出。但是頁面上有這麼一句話Broadcom no longer provides drivers and documentation for NetXtreme II. They can be obtained from QLogic.所以可以點擊QLogic來進入NetXtreme II驅動的下載頁面。
因為我的作業系統是CentOS 6.4 的所以我下載的是netxtreme2-7.10.12-2.rhel6u4.src.rpm的驅動程式套件
# wget http://ldriver.qlogic.com/driver-srpms/netxtreme2/netxtreme2-7.10.12-2.rhel6u4.src.rpm--2014-05-29 03:17:17-- http://ldriver.qlogic.com/driver-srpms/netxtreme2/netxtreme2-7.10.12-2.rhel6u4.src.rpmResolving ldriver.qlogic.com... 198.70.193.47Connecting to ldriver.qlogic.com|198.70.193.47|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 2699127 (2.6M) [audio/x-pn-realaudio-plugin]Saving to: “netxtreme2-7.10.12-2.rhel6u4.src.rpm”100%[===========================================================================================================>] 2,699,127 9.87K/s in 3m 10s 2014-05-29 03:20:32 (13.8 KB/s) - “netxtreme2-7.10.12-2.rhel6u4.src.rpm” saved [2699127/2699127]
5、安裝SRPM包
# rpm -ivh netxtreme2-7.10.12-2.rhel6u4.src.rpm warning: netxtreme2-7.10.12-2.rhel6u4.src.rpm: Header V4 DSA/SHA1 Signature, key ID 29a6a44a: NOKEY 1:netxtreme2 ########################################### [100%]
運行後會得到一個~/rpmbuild目錄
6、進入rpmbuild目錄,使用rpmbuild -bb SPEC/xxxx.spec得到RPM包
# cd ~/rpmbuild# rpmbuild -bb SPECS/kmp-netxtreme2.spec
待運行完畢後可以得到~/rpmbuild/RPMS目錄,裡面儲存著驅動程式的安裝包
# ll ~/rpmbuild/RPMS/x86_64/total 3928-rw-r--r--. 1 root root 3762148 May 29 03:25 kmod-netxtreme2-7.10.12-2.rhel6u4.x86_64.rpm-rw-r--r--. 1 root root 256968 May 29 03:25 netxtreme2-doc-7.10.12-2.rhel6u4.x86_64.rpm
我們需要的是kmod-netxtreme2-7.10.12-2.rhel6u4.x86_64.rpm
8、測試rpm包
# rpm -ivh ~/rpmbuild/RPMS/x86_64/kmod-netxtreme2-7.10.12-2.rhel6u4.x86_64.rpmPreparing... ########################################### [100%] 1:kmod-netxtreme2 ########################################### [100%]
安裝會持續一段無響應的時間,這裡請保持運行,不要中斷執行。
如果安裝完成我們可以通過modinfo bnx2來驗證安裝的驅動是否到位
# modinfo bnx2filename: /lib/modules/2.6.32-358.el6.x86_64/extra/netxtreme2/bnx2.koversion: 2.2.5flicense: GPLdescription: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driverauthor: Michael Chan <[email protected]>srcversion: 2B877A043F01667D1A4B5CEalias: pci:v000014E4d0000163Csv*sd*bc*sc*i*alias: pci:v000014E4d0000163Bsv*sd*bc*sc*i*alias: pci:v000014E4d0000163Asv*sd*bc*sc*i*alias: pci:v000014E4d00001639sv*sd*bc*sc*i*alias: pci:v000014E4d000016ACsv*sd*bc*sc*i*alias: pci:v000014E4d000016AAsv*sd*bc*sc*i*alias: pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i*alias: pci:v000014E4d0000164Csv*sd*bc*sc*i*alias: pci:v000014E4d0000164Asv*sd*bc*sc*i*alias: pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i*alias: pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i*depends: vermagic: 2.6.32-358.el6.x86_64 SMP mod_unload modversions parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int)parm: stop_on_tx_timeout:For debugging purposes, prevent a chip reset when a tx timeout occurs (int)
可以看到驅動程式已經更新為2.2.5f了
9、上傳製作好的rpm到業務環境,使用rpm命令安裝。
話外音,我更新了驅動後依然發現有斷流現象出現,問題還沒有解決,不過驅動程式的更新是正常的,更新驅動程式的朋友可以借鑒參考。
Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 驅動問題處理辦法