Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 驱动问题处理办法

最近发现服务器的网卡经常会自己down然后几分钟后有突然自己up,这个问题没有规律的出现,且会反复出现,无法人为重现故障环境。在更换了网线后,问题依然存在。在查阅了大量的网上资料后,怀疑是网卡启动程序的问题,需要更新网卡驱动程序。

Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 的驱动程序是可以热更新的不需要重启也不会出现闪断,可能会有一个包的丢包,这个在业务中基本可以允许出现。

下面我记录了处理办法的方法:

1、使用虚拟机安装一个跟生产环境操作系统一致的操作系统环境

1.1 确认生产环境

我的生产环境是CentOS 6.4 64位。

# 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组件,已经安装过的可以跳过这步。

# 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包

# 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的驱动程序包

# 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包

# 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.rpm
Preparing...                ########################################### [100%]
   1:kmod-netxtreme2        ########################################### [100%]

安装会持续一段无响应的时间,这里请保持运行,不要中断执行。

如果安装完成我们可以通过modinfo bnx2来验证安装的驱动是否到位

# 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 <[email protected]>
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了

9、上传制作好的rpm到业务环境,使用rpm命令安装。

话外音,我更新了驱动后依然发现有断流现象出现,问题还没有解决,不过驱动程序的更新是正常的,更新驱动程序的朋友可以借鉴参考。

时间: 2024-08-02 02:11:20

Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver 驱动问题处理办法的相关文章

mongodb c# driver(驱动)介绍及CURD

mongodb c# driver(驱动)介绍 目前基于C#的mongodb驱动有两种,分别是官方驱动(下载地址)和samus驱动(下载地址). 本次我们只演示官方驱动的使用方法. 官方驱动文档查看 第一步:引用驱动dll 引用驱动有两种方式: 1. 根据上面的下载地址下载对应的版本,然后引用到项目中. 2. 在项目的引用上右击->管理NuGet程序包(首先确保安装了nuget扩展包)->联机搜索官方驱动dll(搜索条件是 “Official MongoDB”)->安装成功后会引用3个d

sqlserver,oracle,mysql等的driver驱动,url怎么写

oracle driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:数据库名" sqlserver driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名

Jdbc Driver驱动和ServerTimeZone时区的的问题

一.JDBC驱动的版本号以及名称问题 区别: com.mysql.jdbc.Driver 是 mysql-connector-java 5中的 com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6以上的版本中的 注意,我这里使用的是springboot2.1.1版本,在pom.xml文件中整合mysql后自动引入的mysql-connector-java版本是8.x,因此需要使用com.mysql.cj.jdbc.Driver 这个驱动 如图: <!

DELL R410升级网卡驱动

官方链接http://zh-cn.broadcom.com/support/ethernet_nic/netxtremeii.php(官方驱动的名字偶尔会改) 注意确保服务器的kernel-devel,kernel-headers已经安装 一,源码RPM包安装方式 [[email protected] ~]# ls linux-7.4.27.zip  Server [[email protected] Driver]# pwd /root/Server/Linux/Driver [[email 

linux网卡信息和驱动研究

1.网卡自动识别网卡的模式有关吗? Auto-negotiation: on 2   查看当前网卡信息 [[email protected] ~]# lspci | grep -i eth(-i不敏感大小写) 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06) dmesg | tail -f [

Centos6.5更新e1000网卡驱动

Centos6.5更新e1000网卡驱动 导读 在工作过程中经常遇到linux的操作系统网络不正常的情况,以前没有注意到,今天查看系统日志发现原来是网络驱动的问题.索性直接更新系统,更新网卡 问题:linux系统经常出现断网的情况,重启之后系统恢复正常 在断网时候通过ipmi查看系统,发现系统正常运行,只是不能连接网络.进入系统日志找来找去,发下一下报错: May 28 13:55:00 localhost kernel: ------------[ cut here ]------------

问题:linux系统经常出现断网的情况,重启之后系统恢复正常

系统突然之间就断网了,在messge日志里看到:Jun 29 14:23:52 localhost kernel: WARNING: at net/sched/sch_generic.c:265 dev_watchdog+0x26b/0x280() (Not tainted)Jun 29 14:23:52 localhost kernel: Hardware name: X9SCL/X9SCMJun 29 14:23:52 localhost kernel: NETDEV WATCHDOG: e

VMware vSphere常见问题汇总(十六)

160. 解决安装sso报错:error 20010.failed to configure lookupservice问题 故障状态 安装vcenter single sign on这个组件时,系统提示如下错误: Error 20010.failed to configure lookupservice 故障分析 这个问题一般都由ad.dns.时间等缘故导致: 解决方案 1.检查ad里的计算机名是否正常: 2.检查dns服务器解析里面的正向和逆向地址解析,并建议清除dns缓存和过期记录,然后重

网络工程师日常工作总结

日常工作总结 ? netstat命令 如果你在Windows操作系统,你可以使用netstat命令来查询PID,然后可以打开任务管理器,查看这个PID对应的进程名:如果PID没有显示,菜单>查看>选择列>选中PID即可:得知进程后,我们可以将进程杀掉.在windows控制台窗口下执行:netstat -nao | findstr 161 看倒数第1,3行,你看到是PID为4996的进程占用了161和162端口,如果进一步你想知道它的进程名称,你可以使用如下命令:tasklist | fi