安装实例

linux网卡驱动程序的编译与安装

powered by KindGeorge

一般来说,目前新版的 Linux 预设可以支持的网络卡芯片组数量已经很完备了,很多网络卡芯片都已经被支持,

例如RLT 8139 芯片 ( RealTek 8139 ) 的网络卡所以使用者可以很轻易的设定好他们的网络卡。

不过,如果万一不幸核心没有支持该网络卡的话,那么可以透过重新编译核心或者编译网络卡驱动模块 ( Modules ),

并且加载该模块,今天就是这么巧,碰到一个D-Link 的DFE-530TX,没法,只有手动安装网络卡驱动程序了.

可以用命令# dmesg | grep eth

来查看系统启动信息,显示出 eth0 或者 eth1 的信息,如果eth1没找到正确的信息,那就表示 Linux 无法找到该硬件,

eth0是8139的,已经显示正常,例如:

[root@kindgeorge root]# dmesg | grep eth

eth0: RealTek RTL8139 Fast Ethernet at 0xf0160000, 00:0a:a6:30:0d:0e, IRQ 11

eth0:  Identified 8139 chip type 'RTL-8139C'

eth0: Setting 10mbps full-duplex based on auto-negotiated partner ability 4061.

一. 查看自己系统的内核版本.

[root@kindgeorge root]# uname -r

2.4.18-3

我这里是redhat7.3的,内核2.4.18-3

一般来说,这个内核驱动程序的模块会放在 /lib/modules/2.4.18-3/kernel/drivers/net

二.确定系统是否已经安装下面包

1.由于编译需要用到内核的源代码包和编译程序gcc.所以如果没有的话,要先装.

查看:

[root@kindgeorge root]# rpm -qa|grep kernel

kernel-2.4.18-3

kernel-source-2.4.18-3

[root@kindgeorge root]# rpm -qa|grep gcc   (gcc是编译用)

gcc-2.96-110

gcc-g77-2.96-110

gcc-c++-2.96-110

一般装了内核源包的话,都会在出现/usr/src/linux-2.4,同路径下会有linux-2.4.18-3的文件实际目录.

2.如果没有的话,就用原来安装盘上的文件安装,会去下载个相同内核源包安装吧

rpm -ivh kernel-source-2.4.18-3.i386.rpm

......

三. 取得驱动程序和编译

1. 可以重厂家提供的光盘提供,把光盘上的linux目录下的dlkfet-4.24.tar.gz 拷贝过来用.

2. 从网上下载网络卡驱动程序,一般厂家的网站都提供下载程序的.

例如:上有下载.

[root@kindgeorge root]# cp dlkfet-4.24.tar.gz /usr/src

[root@kindgeorge root]# cd /usr/src/

[root@kindgeorge src]# tar -zxvf dlkfet-4.24.tar.gz

dlkfet-4.24/

dlkfet-4.24/rhine_main.c

dlkfet-4.24/Makefile

dlkfet-4.24/vmns_drv.h

dlkfet-4.24/rhine.h

dlkfet-4.24/.depend.mak

dlkfet-4.24/rhine_vmns.c

dlkfet-4.24/rhine_proc.h

dlkfet-4.24/rhine_proc.c

dlkfet-4.24/rhine_vmns.h

dlkfet-4.24/kcompat.h

dlkfet-4.24/rhine_cfg.h

dlkfet-4.24/.depend

dlkfet-4.24/rhine_wol.c

dlkfet-4.24/rhine_wol.h

dlkfet-4.24/linux.txt

3.请留意一开始是没有.o文件的. 我们编译前可以看看目录的linux.txt,是一个包含介绍安装说明.在进入目录后,执行make进行编译.

[root@kindgeorge src]# cd dlkfet-4.24

[root@kindgeorge dlkfet-4.24]# make

[root@kindgeorge dlkfet-4.24]# ll   (编译后查看一下)

total 320

-rw-r--r--    1 root     root         7473 Jan 15  2003 kcompat.h

-rw-r--r--    1 root     root        11491 Jan 20  2003 linux.txt

-rw-r--r--    1 root     root         5219 Dec 10  2002 Makefile

-rw-r--r--    1 root     root         1818 Jan 16  2003 rhine_cfg.h

-rw-r--r--    1 root     root        48715 May 24 18:31 rhinefet.o

-rw-r--r--    1 root     root        42044 Jan 15  2003 rhine.h

-rw-r--r--    1 root     root        78996 Jan 16  2003 rhine_main.c

-rw-r--r--    1 root     root        32760 May 24 18:31 rhine_main.o

-rw-r--r--    1 root     root        14980 Jan 15  2003 rhine_proc.c

-rw-r--r--    1 root     root         1672 Jan 15  2003 rhine_proc.h

-rw-r--r--    1 root     root        12336 May 24 18:31 rhine_proc.o

-rw-r--r--    1 root     root         9172 Jan 15  2003 rhine_vmns.c

-rw-r--r--    1 root     root         1106 Jan 15  2003 rhine_vmns.h

-rw-r--r--    1 root     root         3792 May 24 18:31 rhine_vmns.o

-rw-r--r--    1 root     root         7536 Jan 15  2003 rhine_wol.c

-rw-r--r--    1 root     root         1529 Jan 15  2003 rhine_wol.h

-rw-r--r--    1 root     root         3488 May 24 18:31 rhine_wol.o

-rw-r--r--    1 root     root         6824 Jan 15  2003 vmns_drv.h

4.经过编译后,会编译出一个rhinefet.o 文件,这个就是驱动模块,我们把它拷贝到相应地方:

[root@kindgeorge dlkfet-4.24]#cp rhinefet.o  /lib/modules/2.4.18-3/kernel/drivers/net

[root@kindgeorge dlkfet-4.24]# depmod -a

5.测试

(1)可以用命令modprobe rhinefet 或  insmod rhinefet.o  加载.如果没出错信息说明ok.

(2) 用命令lsmod 可以看看是否已经加载了.

[root@kindgeorge dlkfet-4.24]# lsmod

Module                  Size  Used by    Not tainted

rhinefet               38752   1

8139too                16448   1

mii                     2408   0  [8139too]

这样,看到rhinefet模块已经加载了,基本上,这样就证明已经编译成功.

6. 让它开机时加载

[root@kindgeorge dlkfet-4.24]# vi /etc/modules.conf

在后面加上一行:  alias eth1 rhinefet

7. 配置一下网络

[root@kindgeorge dlkfet-4.24]# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=static

IPADDR=192.168.4.202

NETMASK=255.255.255.0

NETWORK=192.168.4.0

GATEWAY=192.168.4.250

BROADCAST=192.168.4.255

ONBOOT=yes

8.启动网卡,然后用ifconfig查看,

ifup eth1

[root@kindgeorge dlkfet-4.24]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0A:E6:30:0D:0E

inet addr:211.239.218.153  Bcast:211.239.218.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:3780479 errors:0 dropped:0 overruns:0 frame:0

TX packets:3833860 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:1118112324 (1066.3 Mb)  TX bytes:1111887387 (1060.3 Mb)

Interrupt:11

eth1      Link encap:Ethernet  HWaddr 00:0F:3D:82:EC:1D

inet addr:192.168.4.202  Bcast:192.168.4.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:749312 errors:0 dropped:0 overruns:0 frame:0

TX packets:976174 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:43695059 (41.6 Mb)  TX bytes:1472142037 (1403.9 Mb)

Interrupt:5 Base address:0xe000

9.重新启动机器,可以自动加载和使用了.大功告成.

五. 按照安装说明的方法自动编译安装.

在 "三.3" 中我们用make 编译,然后进行手动的拷贝. 实际上在linux.txt中的安装说明提到用make install .

那我们来看看这种方法系统都做了什么吧.

[root@firewall1 dlkfet-4.24]# make install

gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.18-3/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.18-3/build/include/linux/modversions.h -DVMNS   -c -o rhine_main.o rhine_main.c

gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.18-3/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.18-3/build/include/linux/modversions.h -DVMNS   -c -o rhine_proc.o rhine_proc.c

gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.18-3/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.18-3/build/include/linux/modversions.h -DVMNS   -c -o rhine_wol.o rhine_wol.c

gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe -I/lib/modules/2.4.18-3/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/modules/2.4.18-3/build/include/linux/modversions.h -DVMNS   -c -o rhine_vmns.o rhine_vmns.c

**************************************************

Build options:

VERSION    2.4.18-3

SMP             Disabled

VMNS            Enabled

***************************************************

mkdir -p /lib/modules/2.4.18-3/kernel/drivers/net

install -m 644 -o root rhinefet.o /lib/modules/2.4.18-3/kernel/drivers/net

*****  Move official driver via-rhine.o to via-rhine.o.backup

mv /lib/modules/2.4.18-3/kernel/drivers/net/via-rhine.o /lib/modules/2.4.18-3/kernel/drivers/net/via-rhine.o.backup

/sbin/depmod -a || true

按照上面的结果显示是这样的一个过程:

(1)系统把.c等文件编译成相应的.o文件.

(2)然后显示系统是否支持SMP和VMNS,然后把相应的.o模块文件拷贝到系统应该的地方.

(3)并且把相同芯片的程序过时的via-rhine.o改为备份文件.让系统用新的rhinefet.o

(4)最后执行/sbin/depmod -a 更新模块库配置. 看来这个也是个智能的安装方法.

六. 用其他方法驱动.

由于市面上很多的各种各样的板卡,有名牌有杂牌,多不胜数.当我们拿到一块卡,但一下子没找到它本身提供的源程序,不能编译,怎么办呢?

所以当你有一块网卡不能用,在找linux的driver之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等.

这样的型号一般都在网卡上最大的一快芯片上印着.如果芯片型号相同,那么它们其中一些是可以通用的.我们可以尝试一下系统上已经安装了的驱动是否可行了.进入驱动目录/lib/modules/(内核版本)/kernel/drivers/net  即可发现已经有很多模块了, 用命令insmod 相应芯片模块名字 , 如果不成功会报错,如果正确则不显示错误信息,然后再进行上面的"三.5-9"步骤进行测试.如果不行,再老老实实的找源程序吧.

linux网卡驱动程序的编译与安装,linux网卡驱动程序的编译与安装相关推荐

  1. linux 网卡驱动编译安装包,linux网卡驱动程序的编译与安装

    一般来说,目前新版的Linux预设可以支持的网络卡芯片组数量已经很完备了,很多网络卡芯片都已经被支持, 例如RLT 8139芯片( RealTek 8139 )的网络卡所以使用者可以很轻易的设定好他们 ...

  2. 手动安装Linux网卡驱动程序

    昨天看了看在Linux下配置网卡的驱动程序,总结了一下: 以D-Link530的网卡进行模块的编译.     由于Linux的默认内核已经建立很多网卡驱动程序模块,所以在编译网卡模块之前就要确认网卡芯 ...

  3. Linux怎么部署网卡驱动,手动安装Linux网卡驱动程序

    昨天看了看在Linux下配置网卡的驱动程序,总结了一下: 以D-Link530的网卡进行模块的编译. 由于Linux的默认内核已经建立很多网卡驱动程序模块,所以在编译网卡模块之前就要确认网卡芯片是否被 ...

  4. 编译安装linux内核步骤

    编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核 ...

  5. linux网卡驱动离线安装_手动安装linux网卡驱动方法

    在Linux下配置网卡的驱动程序,总结了一下: 以D-Link530的网卡进行模块的编译. 由于Linux的默认内核已经建立很多网卡驱动程序模块,所以在编译网卡模块之前就要确认网卡芯片是否被支持,如果 ...

  6. 技嘉H370 HD3主板的物理机上安装 Linux CentOS7 解决无网卡驱动

    技嘉H370 HD3主板的物理机上安装 Linux CentOS7 解决无网卡驱动 一般的机器网卡驱动会随Linux系统一起安装,但有些奇葩的主板的网卡驱动Linux安装包没有,这就得找到它的网卡驱动 ...

  7. Linux Ubuntu20.04安装RTL8156网卡驱动开启巨型帧

    最近在做工业相机方面的东西,接口为千兆以太网,并且需要打开巨型帧进行信息传输. 而我的老笔记本电脑只支持百兆以太网,所以买了一个支持巨型帧的USB3.0转RJ45,其内部网卡为RTL8156BG,费劲 ...

  8. sr650安装linux网卡驱动,Lenovo SR650安装Windows Server 2012之Solarflare驱动导致系统异常...

    Lenovo SR650安装Windows Server 2012,同时配置Solarflare万兆网卡,但当下载Solarflare安装完成Solarflare万兆网卡驱动后导致OS无法正常启动,同 ...

  9. linux网卡驱动离线安装_Linux网卡驱动的安装方式

    如何安装Linux网卡驱动呢,看看下面的说明. 适用机型: 所有xSeries 205; 所有xSeries 206; 所有xSeries 225; 所有xSeries 226; 所有xSeries ...

最新文章

  1. lpk.dll是什么
  2. 好程序员web前端分享使用JavaScript正则表达式如何去掉双引号
  3. 一条 SQL 语句在 MySQL 中如何被执行的?
  4. loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)
  5. ITK:图像的区域最大值
  6. 在使用模板时遇到的错误,TypeError at /index/ context must be a dict rather than RequestContext(亲测)
  7. 豆瓣评分9.4!这部大片你不应该错过,每一秒都是不敢看的残忍!
  8. Vue 2.x 文件夹目录
  9. 抢头条offer机会,抖音面试题:网络编程Socket+GC Roots+数据同步+Redis等
  10. ntpdate[16603]: the NTP socket is in use
  11. 马尔科夫模型系列文章(一)——马尔科夫模型
  12. 默写人体的方法有哪些?如何默写好画人体?
  13. 64位系统可以装python32位吗_Python - pyinstaller在64位系统下打包32位程序
  14. 基于React的富文本编辑器——Braft Editor使用
  15. 视频处理入门 | 六
  16. linux计算器界面代码,linux 日历,计算器,nano编辑器,开关机、重启,(示例代码)...
  17. canal学习2--canal Adapter使用
  18. 趁着快递还能发,赶紧把迪士尼礼盒带回家 | 钛空舱
  19. 开学splay(这个模版要背的滚瓜烂熟)
  20. 微信摇一摇怎么连接服务器,微信摇一摇电视有什么用 摇一摇电视互动玩法及原理...

热门文章

  1. linux traceroute命令参数及用法详解--linux跟踪路由命令
  2. php 关联数组 索引,PHP 数组:索引数组与关联数组
  3. 2. SCI论文引言写作案例分析学习笔记
  4. 程序员买房子,,,一道简单题
  5. 51单片机LCD1602液晶屏显示字符,字符串,(有)无符号整数,十六进制数,二进制数等
  6. 天猫红包怎么用?我来教你
  7. N76E003中断设置流程
  8. 【附上解释】爬取A股所有上市公司的信息并存储到数据库或者是csv文件中
  9. 零基础学python知乎-python学画画(上)
  10. 激光笔与玻璃砖的折射