红联Linux门户
Linux帮助

linux下编译安装网卡驱动(网卡丢包)

发布时间:2011-12-30 17:24:50来源:红联作者:天真花语
安装编译网卡驱动
这两天发现一台server丢包很严重,使用cacti监控工具时能获得snmp包,时常又不能,丢包严重,导致使用ssh工具连接过慢,连接数据库访问超时,此时要先确定是中病毒还是网卡问题,
先对整体server的重要目录下查看,未发现异常文件,top查看,未发现异常进程,通过cacti对网卡流量分析,流量很少,由此基本可以确定和病毒无关;
所以,现在只能尝试通过升级网卡驱动,看是否可以解决此问题
先查看网卡驱动信息
查看方法:
[root@server46 ~]# dmesg | grep eth0
eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 106, node addr 00:1a:64:66:98:98
红色部分表示为server上的网卡,之后去相应官网下载最新驱动
linux-6.2.23.zip 这个源码包是我新下载的,解压
[root@server46 mysql]# unzip linux-6.2.23.zip
进入目录:/home/mysql/Server/Linux/Driver,包放置的目录不同,这个目录是我包放置的目录,此目录下面包含
netxtreme2-6.2.23.tar.gz RELEASE.bnx2i.TXT RELEASE.bnx2x.TXT
netxtreme2-6.2.23-1.src.rpm netxtreme2_sup-6.2.23-1.ISO.tar.gz RELEASE.bnx2.TXT
升级网卡驱动,可以通过安装rpm包或者.tar.gz的源码包,rpm包的安装方法可以搜集下,下面来看如何编译安装
解压netxtreme2-6.2.23.tar.gz ,进入相应目录
[root@server46 Driver]# cd netxtreme2-6.2.23
[root@server46 netxtreme2-6.2.23]# ls
bnx2 bnx2-2.0.23b bnx2i bnx2i-2.6.2.4c bnx2x bnx2x-1.62.15 INSTALL.TXT Makefile
每一个驱动程序中,都会有提示安装方法,cat 查看下INSTALL.TXT文件
文件中有提示
The following are general guidelines for installing the driver.

1. Create a directory and extract the files:

tar xvzf netxtreme2-.tar.gz
下面都有提示
如何查看自己内核的版本呢:[root@server46 netxtreme2-6.2.23]# uname -r
2.6.18-128.el5、
之后 make
[root@server46 netxtreme2-6.2.23]# make
make -C bnx2/src KVER=2.6.18-128.el5 PREFIX=
make[1]: Entering directory `/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23/bnx2-2.0.23b/src'
make -C /lib/modules/2.6.18-128.el5/build SUBDIRS=/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23/bnx2-2.0.23b/src modules
make[2]: Entering directory `/usr/src/kernels/2.6.18-128.el5-x86_64'
Building modules, stage 2.
Make时,看是否会提示error,不然的话会导致失败的,如果没有提示失败,就再执行make install
make[2]: Leaving directory `/usr/src/kernels/2.6.18-128.el5-x86_64'
gzip -c bnx2x.4 > bnx2x.4.gz
install -m 644 bnx2x.4.gz /usr/share/man/man4
make[1]: Leaving directory `/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23/bnx2x-1.62.15/src'
[root@server46 netxtreme2-6.2.23]# ls
中间如果没有提示error就好,内容太多,就不在一一截图了
此时,需要注意,因为在目录/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23下有多个bnx2 、 bnx2i、bnx2x
如何确定需要安装那个目录下的驱动文件,此时看之前的INSTALL.TXT文件
- bnx2 driver for the Broadcom NetXtreme II BCM5706/BCM5708/5709/5716
10/100/1000/2500/10000 Mbps PCIX/PCIE Ethernet Network Controller.

- bnx2x driver for the Broadcom NetXtremeII BCM57710/BCM57711/BCM57711E
10/100/1000/2500/10000 Mbps PCIE Ethernet Network Controller.
从我们之前获得的网卡型号,eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 106, node addr 00:1a:64:66:98:98
所以,需要复制bnx2下的驱动文件即可
[root@server46 netxtreme2-6.2.23]# cp bnx2/src/bnx2.ko /lib/modules/2.6.18-128.el5/kernel/net/
路径:/lib/modules/2.6.18-128.el5/kernel/net/ 是你的内核版本,由uname -r 可以查看
之后附加权限:
chmod -R 755 //lib/modules/2.6.18-128.el5/kernel/net/
赋加可执行权限,这样在重启的时候,会有可执行权限
之后执行depmod命令,更新下modules.dep文件,再
[root@server46 netxtreme2-6.2.23]# vi /etc/modprobe.conf 文件
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter aacraid
alias scsi_hostadapter1 ata_piix
Ok.退出,保存,
Reboot系统
登录系统后,查看下
[root@server46 ~]# lsmod | grep bnx2
bnx2 224140 0
[root@server46 ~]# ethtool -i eth1
driver: bnx2
version: 2.0.23b
firmware-version: bc 1.9.6
bus-info: 0000:06:00.0
现在版本变成2.0.23b,表示升级成功!!!!!
再用cacti监控的时候,一切正常
当出现server丢包的时候:
先ping 网关,看是否丢包
再去ping网关的吓一跳,看是否丢包,如果丢包,用另外的server测试,ping吓一跳是否丢包,如果丢包,考虑网络问题,如果不丢包,就优先考虑server本身问题,网卡和系统
考虑系统是确定是否中毒导致的,可以查看系统是否有乱码文件,是否有异常的进程,用tcpdump工具,监控流量时候有异常;如果以上都没有发现,就考虑网卡
考虑网卡,一般情况下,server上都有双网卡,可以先换网卡尝试,如果还丢包,升级网卡驱动


此文章是我在编译安装的同时记录的,其中不免有记录不正确的地方,所以,仅供大家参考,有其他想法可加入QQ群:140704742 交流
文章评论

共有 58 条评论

  1. gky2009514 于 2012-12-07 12:53:43发表:

    新手完成任务,求下书籍~

  2. laoduo123 于 2012-12-06 14:42:37发表:

    学习学习....

  3. free7473 于 2012-10-18 10:45:57发表:

    学习了。。

  4. 寂寞弯刀 于 2012-10-05 00:31:55发表:

    努力学习感谢

  5. yanglong985 于 2012-08-12 10:26:26发表:

    谢谢lz分享

  6. tinthh 于 2012-08-01 17:09:17发表:

    不太会,关注。。。

  7. hongzuo2012 于 2012-04-30 15:51:39发表:

    DDDCCDDD

  8. hongzuo2012 于 2012-04-30 15:51:33发表:

    DDDFDDCCXDD

  9. hongzuo2012 于 2012-04-30 15:51:27发表:

    DDDEEEDD

  10. hongzuo2012 于 2012-04-30 15:51:20发表:

    DDFFDDD

  11. hongzuo2012 于 2012-04-30 15:51:14发表:

    DDGDDD

  12. hongzuo2012 于 2012-04-30 15:51:04发表:

    ddeeeedd

  13. hongzuo2012 于 2012-04-30 15:50:56发表:

    fffff

  14. hongzuo2012 于 2012-04-30 15:50:49发表:

    dddggssa

  15. hongzuo2012 于 2012-04-30 15:50:34发表:

    dddddaaaa

  16. hongzuo2012 于 2012-04-30 15:50:17发表:

    fffdd

  17. hongzuo2012 于 2012-04-30 15:50:03发表:

    vcfgghghfds

  18. hongzuo2012 于 2012-04-30 15:49:56发表:

    dddggddd

  19. hongzuo2012 于 2012-04-30 15:49:46发表:

    ddggdddd

  20. hongzuo2012 于 2012-04-30 15:49:33发表:

    dggdddss

  21. hongzuo2012 于 2012-04-30 15:49:26发表:

    dddggddd

  22. hongzuo2012 于 2012-04-30 15:48:55发表:

    dddgg

  23. hongzuo2012 于 2012-04-30 15:48:18发表:

    ddgggddd

  24. hongzuo2012 于 2012-04-30 15:48:11发表:

    dddgggdd

  25. hongzuo2012 于 2012-04-30 15:48:05发表:

    ddddgggg

  26. hongzuo2012 于 2012-04-30 15:47:56发表:

    dddgggddd

  27. hongzuo2012 于 2012-04-30 15:47:48发表:

    dddgggdddd

  28. hongzuo2012 于 2012-04-30 15:47:40发表:

    dddgggd

  29. hongzuo2012 于 2012-04-30 15:47:30发表:

    dddgggddd

  30. hongzuo2012 于 2012-04-30 15:47:22发表:

    ddddggggsss

  31. hongzuo2012 于 2012-04-30 15:47:14发表:

    gggdddd

  32. hongzuo2012 于 2012-04-30 15:47:03发表:

    ddgggddd

  33. hongzuo2012 于 2012-04-30 15:46:51发表:

    dddggggddd

  34. hongzuo2012 于 2012-04-30 15:46:41发表:

    dddgggddd

  35. hongzuo2012 于 2012-04-30 15:46:31发表:

    ddggdddd

  36. hongzuo2012 于 2012-04-30 15:46:21发表:

    ddggddddd

  37. hongzuo2012 于 2012-04-30 15:46:15发表:

    ddhggddd

  38. hongzuo2012 于 2012-04-30 15:46:07发表:

    dddhghhddd

  39. hongzuo2012 于 2012-04-30 15:45:58发表:

    hghhhddddd

  40. hongzuo2012 于 2012-04-30 15:45:50发表:

    ggggdd