linux网卡驱动更新方法
kernel: eth0: igb_reset_task: Reset adapter解决方法
1、 LVS集群web项目,运行大概一个月左右出现访问慢的情况,查询mysql服务器时/var/log/message日志文件,发现以下内容:
Dec 6 04:15:29 localhost kernel: igb 0000:01:00.1: eth1: Reset adapter
Dec 6 04:15:29 localhost kernel: igb 0000:01:00.0: eth0: Reset adapter
Dec 6 04:15:31 localhost kernel: igb: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
Dec 6 04:15:31 localhost kernel: igb: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
Dec 6 04:24:01 localhost kernel: igb 0000:01:00.1: eth1: Reset adapter
Dec 6 04:24:01 localhost kernel: igb 0000:01:00.0: eth0: Reset adapter
Dec 6 04:24:03 localhost kernel: igb: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
Dec 6 04:24:03 localhost kernel: igb: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
解决办法:
根据各位同仁建议,是升级网卡驱动,根据各自服务器使用的网卡到官网下载。
http://www.intel.cn/content/www/cn/zh/homepage.html Intel官网,下载中心
wget https://downloadmirror.intel.com/13663/eng/igb-5.3.2.tar.gz
https://downloadcenter.intel.com/zh-cn/download/13663/-82575-6-82580-I350-I210-211-Linux-
2、 将当前内核(2.6.32-358.el6.x86_64)升级到目标内核(2.6.32-573.8.1.el6.x86_64),但是编译的目标内核(2.6.32-573.8.1.el6.x86_64)的对应驱动程序并不一定支持当前系统的对应设备。本篇将详细讲述目标内核驱动无法支持当前网卡设备的处理步骤。
01、更新内核
CentOS release 6.4 (Final)对应的kernel默认为2.6.32-358.el6.x86_64
# uname -r
2.6.32-358.el6.x86_64
安装增强功能需要kernel-devel包,必须保证kernel-devel和kernel版本的一致。查看软件源中kernel-devel的版本:
# yum info kernel-devel
当前的kernel-devel版本是2.6.32-573.8.1.el6.x86_64。因此,必须升级kernel:
# yum update kernel
升级完后必须重启系统,新的kernel才能被使用。
02、安装kernel-devel和gcc
# yum install kernel-devel gcc gcc-c++
03、显示所有网卡
由于一个系统可以支持多张网卡,可通过如下命显示当前系统的所有网卡及其基本信息:
[root@localhostsrc]# ifconfig -a
eth0 Link encap:EthernetHWaddr 0C:C4:7A:15:E3:58
inet addr:192.168.1.120 Bcast:192.168.1.255 Mask:255.255.255.0
inet6addr: fe80::ec4:7aff:fe15:e358/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33988 errors:0 dropped:0 overruns:0 frame:0
TX packets:8164 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2939087 (2.8 MiB) TX bytes:1024040 (1000.0 KiB)
04、查看网卡所需驱动
使用ethtool命令可以查看指定网卡所以来的网卡驱动信息:
[root@localhostsrc]# ethtool -i eth0
driver: igb - 网卡em3依赖igb驱动
version: 4.0.1-k
firmware-version: 3.29, 0x023b8000
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
注:igb 驱动程序支持所有基于 82575 、 82576 、 82580 和 I350 的千兆位网络连接。
错误信息:
[root@localhost ~]# lspci
-bash: lspci: command not found
问题原因:
这是因为没有安装pciutils包造成的。
解决办法:
#yum install pciutils
05、查看网卡型号
通过③我们已经知道了网卡所依赖的驱动,但是还不知具体的网卡驱动型号,此时可通过如下命令查询:
[root@localhost ~]# lspci -nn | grep "Eth"
01:00.0 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
01:00.1 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
注:Gigabit为千兆 10-Gigabit为万兆
由④的操作可知当前内核(2.6.32-220.el6.x86_64)千兆网络驱动igb支持网卡型号[8086:1521],因此必须要求目标内核(2.6.33-110.el6.x86_64)对该型号网卡[8086:1521]的支持。
06、查看目标内核的网卡驱动是否支持当前型号网卡
可以通过modinfo命令查看*.ko对哪种设备型号的支持,目标内核(2.6.33-110.el6.x86_64)的相关驱动可在/lib/modules/2.6.33-110.el6.x86_64的目录想找到,如下所示:
#modinfo /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/igb/igb.ko
filename: /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/igb/igb.ko
version: 4.0.1-k
license: GPL
description: Intel(R) Gigabit Ethernet Network Driver
author: Intel Corporation, <e1000-devel@lists.sourceforge.net>
srcversion: 04D309663B138858B8AF619
alias: pci:v00008086d000010D6sv*sd*bc*sc*i*
alias: pci:v00008086d000010A9sv*sd*bc*sc*i*
alias: pci:v00008086d000010A7sv*sd*bc*sc*i*
alias: pci:v00008086d000010E8sv*sd*bc*sc*i*
alias: pci:v00008086d00001526sv*sd*bc*sc*i*
alias: pci:v00008086d0000150Dsv*sd*bc*sc*i*
alias: pci:v00008086d000010E7sv*sd*bc*sc*i*
alias: pci:v00008086d000010E6sv*sd*bc*sc*i*
alias: pci:v00008086d00001518sv*sd*bc*sc*i*
alias: pci:v00008086d0000150Asv*sd*bc*sc*i*
alias: pci:v00008086d000010C9sv*sd*bc*sc*i*
alias: pci:v00008086d00000440sv*sd*bc*sc*i*
alias: pci:v00008086d0000043Csv*sd*bc*sc*i*
alias: pci:v00008086d0000043Asv*sd*bc*sc*i*
alias: pci:v00008086d00000438sv*sd*bc*sc*i*
alias: pci:v00008086d00001516sv*sd*bc*sc*i*
alias: pci:v00008086d00001511sv*sd*bc*sc*i*
alias: pci:v00008086d00001510sv*sd*bc*sc*i*
alias: pci:v00008086d00001527sv*sd*bc*sc*i*
alias: pci:v00008086d0000150Fsv*sd*bc*sc*i*
alias: pci:v00008086d0000150Esv*sd*bc*sc*i*
alias: pci:v00008086d00001524sv*sd*bc*sc*i*
alias: pci:v00008086d00001523sv*sd*bc*sc*i*
alias: pci:v00008086d00001522sv*sd*bc*sc*i*
alias: pci:v00008086d00001521sv*sd*bc*sc*i*
alias: pci:v00008086d00001538sv*sd*bc*sc*i*
alias: pci:v00008086d00001537sv*sd*bc*sc*i*
alias: pci:v00008086d00001536sv*sd*bc*sc*i*
alias: pci:v00008086d00001533sv*sd*bc*sc*i*
alias: pci:v00008086d00001539sv*sd*bc*sc*i*
depends: ptp,dca
vermagic: 2.6.32-358.el6.x86_64 SMP mod_unload modversions
parm: max_vfs:Maximum number of virtual functions to allocate per physical function (uint)
parm: debug:Debug level (0=none,...,16=all) (int)
从以上信息中找不到[8086:1521]的信息,因此,目标内核(2.6.32-358.el6.x86_64)网卡驱动不支持当前网卡!
07、到官网下载网卡驱动
既然已经明确了目标内核的网卡驱动并不支持当前的网卡设备,也就是说一旦启用新的内核,将导致系统无法正常使用网络功能。如果是英特尔的网卡设备,则可到:http://www.intel.cn/content/www/cn/zh/homepage.html 下载所需的驱动源码到本地。
08、编译网卡驱动
解压驱动源码后,按照以下命令格式编译驱动源码:
#cd igb-5.3.2/src
#make BUILD_KERNEL=2.6.32-573.12.1.el6.x86_64
说明:2.6.32-573.12.1.el6.x86_64 为内核版本,请根据自己的服务器内核版本输入;
以上命令将会生成网卡驱动igb.ko。其中BUILD_KERNEL指明需要为哪个内核编译驱动,默认是给当前正在运行的内核编译,在此我们设定为目标内核(2.6.32-573.12.1.el6.x86_64)。那么又该如何查看新生成的网卡驱动igb.ko是否支持当前的网卡设备呢?
09、检查网卡驱动是否支持当前网卡
步骤⑦将会生成网卡驱动igb.ko,这时可通过modinfo命令验证该驱动是否支持网卡设备[8086:1521],如下所示:
[root@localhost src]# modinfo igb.ko
filename: igb.ko
version: 5.3.2
license: GPL
description: Intel(R) Gigabit Ethernet Network Driver
author: Intel Corporation, <e1000-devel@lists.sourceforge.net>
srcversion: B821C1F6B2F95B48EC6DFDA
alias: pci:v00008086d000010D6sv*sd*bc*sc*i*
alias: pci:v00008086d000010A9sv*sd*bc*sc*i*
alias: pci:v00008086d000010A7sv*sd*bc*sc*i*
alias: pci:v00008086d000010E8sv*sd*bc*sc*i*
alias: pci:v00008086d00001526sv*sd*bc*sc*i*
alias: pci:v00008086d0000150Dsv*sd*bc*sc*i*
alias: pci:v00008086d000010E7sv*sd*bc*sc*i*
alias: pci:v00008086d000010E6sv*sd*bc*sc*i*
alias: pci:v00008086d00001518sv*sd*bc*sc*i*
alias: pci:v00008086d0000150Asv*sd*bc*sc*i*
alias: pci:v00008086d000010C9sv*sd*bc*sc*i*
alias: pci:v00008086d00000440sv*sd*bc*sc*i*
alias: pci:v00008086d0000043Csv*sd*bc*sc*i*
alias: pci:v00008086d0000043Asv*sd*bc*sc*i*
alias: pci:v00008086d00000438sv*sd*bc*sc*i*
alias: pci:v00008086d00001516sv*sd*bc*sc*i*
alias: pci:v00008086d00001511sv*sd*bc*sc*i*
alias: pci:v00008086d00001510sv*sd*bc*sc*i*
alias: pci:v00008086d00001527sv*sd*bc*sc*i*
alias: pci:v00008086d0000150Fsv*sd*bc*sc*i*
alias: pci:v00008086d0000150Esv*sd*bc*sc*i*
alias: pci:v00008086d00001524sv*sd*bc*sc*i*
alias: pci:v00008086d00001523sv*sd*bc*sc*i*
alias: pci:v00008086d00001522sv*sd*bc*sc*i*
alias: pci:v00008086d00001521sv*sd*bc*sc*i*
alias: pci:v00008086d00001539sv*sd*bc*sc*i*
alias: pci:v00008086d0000157Csv*sd*bc*sc*i*
alias: pci:v00008086d0000157Bsv*sd*bc*sc*i*
alias: pci:v00008086d00001538sv*sd*bc*sc*i*
alias: pci:v00008086d00001537sv*sd*bc*sc*i*
alias: pci:v00008086d00001536sv*sd*bc*sc*i*
alias: pci:v00008086d00001533sv*sd*bc*sc*i*
alias: pci:v00008086d00001F45sv*sd*bc*sc*i*
alias: pci:v00008086d00001F41sv*sd*bc*sc*i*
alias: pci:v00008086d00001F40sv*sd*bc*sc*i*
depends: i2c-core,ptp,dca,i2c-algo-bit
vermagic: 2.6.32-573.8.1.el6.x86_64 SMP mod_unload modversions
终于在显示的信息中找到了[8086:1521]信息,说明新生成的驱动文件能够支持当前网卡型号。那么如何让目标内核(2.6.32-573.8.1.el6.x86_64)能够载入新驱动呢?
09、更新目标内核驱动
# cd /usr/local/src/igb-5.3.2/src
# make install
# rmmod igb; modprobe igb
对于120秒超时问题在/etc/sysctl.conf文件里面添加
vm.dirty_background_ratio=5
vm.dirty_ratio=10
10、以上工作完成后,可以重启系统了!
[root@localhost src]# ethtool -i eth0
driver: igb
version: 5.3.2
firmware-version: 1.52, 0x800007ae
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
linux网卡驱动更新方法的更多相关文章
- linux网卡驱动移植
这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可 ...
- Dell R410 broadcom网卡驱动更新失败
问题描述: 最近遇到一个Dell R410 broadcom网卡驱动更新失败的问题.从官网上下载的驱动在安装的过程中都会自己回滚回来,很是困惑. 尝试解决: Dell官网现在提供的驱动一般最少有两种格 ...
- linux下安装编译网卡驱动的方法
安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网 ...
- Linux网卡驱动
<网络知识> a:网络模型 OSI模型 TCP模型 虽然OSI模型看着挺完美的,但是过于复杂,这样就会导致不实用,在Linux系统中 ...
- Linux网卡驱动程序对ethtool的支持和实现
Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用.对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ...
- 笔记本安装Win2012R2 心得(包含无线网卡+有线网卡驱动解决方法)
笔记本:联想昭阳E47G 无线网卡安装方法: 系统安装完毕后将自动识别无线网卡驱动,但需要手动允许WLAN服务开启.(建议,如果是拿来办公或者家用,可以安装上桌面体验)不然,QQ发的截图双击都看不起. ...
- Linux 网卡驱动设备程序设计(1)
一.网卡驱动架构分析 1. Linux 网络子系统 #系统调用接口层 为应用程序提供访问网络子系统的统一方法. #协议无关层 提供通用的方法来使用传输层协议. #协议栈的实现 实现具体的网络协议 #设 ...
- linux网卡驱动安装及锐捷使用
原创博文,转载请注明出处 先吐槽一下,以前装了个Centos win7双系统, 然后手贱一不小心把启动文件给删了,接下来就用grub恢复启动文件,整了一天也没搞出来还把win7的Boot Manage ...
- linux | 网卡驱动
linux 1. 查看网卡信息 lspci | grep -i 'eth' 1a:00.0 Ethernet controller: Intel Corporation Ethernet Connec ...
随机推荐
- composer 手动安装及简单使用 windows
1.配置系统变量 Path 计算机->高级系统设置->环境变量->找到系统变量Path 双击 加入 ;php根目录地址:php中ext地址 如 :“;D:\phpStudy ...
- python面试题之补充缺失的代码
补充缺失的代码 def print_directory_contents(sPath): """ 这个函数接受文件夹的名称作为输入参数, 返回该文件夹中文件的路径, 以及 ...
- python 数据压缩
zlib 压缩 import zlib import this s = this.s.encode('utf8')*10 for i in range(10): data = zlib.compres ...
- LLppdd never give up!
LLppdd never give up! Time Limit: 1 s Memory Limit: 256 MB 题目背景 LLppdd是个被毒害的小朋友,他的初中生涯充满了坎坷. 直到初三的某一 ...
- spring纯注解的account案例
dao层: package cn.mepu.dao.imp; import cn.mepu.dao.IAccountDao; import cn.mepu.domain.Account; import ...
- idea设置忽略svn的文件或目录
1. 这个地方可以设置忽略的文件和目录,但是这里设置之后,我们在工程里面就看不到了 2. 这里设置提交是后要忽略的文件,比如我忽略的target目录,*.iml 我再1中设置了target目录发现我的 ...
- 【JS学习】慕课网4-10 编程练习
在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名.性别.年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦. 学生信息如下: ('小 ...
- vue撸的demo
之前做过一个layui+flask的测试平台,后来听说vue挺火,学了下,做个记录 一.想法 主要想开发几大功能,方便以后复用 1.工作中常常需要记录知识,所以我决定会做一个类似markdown笔记的 ...
- scrollHeight与offsetHeight
offsetXxx 是 HTMLElement 的属性, HTMLElement 接口表示所有的 HTML 元素,scrollXxx 是 Element 的属性,Element 是一个通用性非常强的基 ...
- KindEditor在eclipse里的配置方法
KindEditor介绍: kindEditor是一款国产富文本编辑器,类似fckeditor和目前比较流行的百度Ueditor.其产品官方网站为http://kindeditor.net/ Kind ...