Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 驱动问题处理办法
CentOSBroadcom網卡驅動更新
最近發現服務器的網卡經常會自己down然后幾分鐘后有突然自己up,這個問題沒有規律的出現,且會反復出現,無法人為重現故障環境。在更換了網線后,問題依然存在。在查閱了大量的網上資料后,懷疑是網卡啟動程序的問題,需要更新網卡驅動程序。
Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 的驅動程序是可以熱更新的不需要重啟也不會出現閃斷,可能會有一個包的丟包,這個在業務中基本可以允許出現。
下面我記錄了處理辦法的方法:
1、使用虛擬機安裝一個跟生產環境操作系統一致的操作系統環境
1.1 確認生產環境
我的生產環境是CentOS 6.4 64位。
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# uname -r ?
2.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組件,已經安裝過的可以跳過這步。
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# yum -y install make gcc rpm-build redhat-rpm-config ?
Loaded plugins: fastestmirror ?
Loading mirror speeds from cached hostfile ?
Setting up Install Process ?
Package 1:make-3.81-20.el6.x86_64 already installed and latest version ?
Package gcc-4.4.7-11.el6.x86_64 already installed and latest version ?
Package rpm-build-4.8.0-38.el6_6.x86_64 already installed and latest version ?
Package 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包
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# yum list|grep kernel-devel ?
kernel-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的驅動程序包
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# 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.rpm ?
Resolving ldriver.qlogic.com... 198.70.193.47 ?
Connecting to ldriver.qlogic.com|198.70.193.47|:80... connected. ?
HTTP request sent, awaiting response... 200 OK ?
Length: 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包
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# 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包
[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
# cd ~/rpmbuild ?
# rpmbuild -bb SPECS/kmp-netxtreme2.spec ?
待運行完畢后可以得到~/rpmbuild/RPMS目錄,里面保存著驅動程序的安裝包
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# 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包
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# rpm -ivh ~/rpmbuild/RPMS/x86_64/kmod-netxtreme2-7.10.12-2.rhel6u4.x86_64.rpm ?
Preparing... ? ? ? ? ? ? ? ?########################################### [100%] ?
? ?1:kmod-netxtreme2 ? ? ? ?########################################### [100%] ?
安裝會持續一段無響應的時間,這里請保持運行,不要中斷執行。
如果安裝完成我們可以通過modinfo bnx2來驗證安裝的驅動是否到位
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
# modinfo bnx2 ?
filename: ? ? ? /lib/modules/2.6.32-358.el6.x86_64/extra/netxtreme2/bnx2.ko ?
version: ? ? ? ?2.2.5f ?
license: ? ? ? ?GPL ?
description: ? ?Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver ?
author: ? ? ? ? Michael Chan <mchan@broadcom.com> ?
srcversion: ? ? 2B877A043F01667D1A4B5CE ?
alias: ? ? ? ? ?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了
轉載于:https://blog.51cto.com/wujingfeng/1676274
總結
以上是生活随笔為你收集整理的Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 驱动问题处理办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全选,不全选JS
- 下一篇: 【后缀数组】【poj2774】【 Lon