l.inux网卡驱动程序的编译与安装.
.powered by KindGeorge.
一般来说,目前新版的 Linux 预设可.以支持的网络卡芯片组数量已经很完备了,很多网络卡芯片都已.经被支持, 鲜花
例如RLT 8139 芯片 ( RealTek 813.9 ) 的网络卡所以使用.者可以很轻易的设定好他们的网络卡。 鲜花
不过,如果万一不幸核心没有支持该网络卡的话,那么可以透过重新编译核心或者编译网络卡驱动模.块 ( .Modules ), 鲜花
并且加载该模块,今天就是这么巧,碰到一个D-Link 的DFE-530TX,没法,只有手动安.装网络卡驱动程.序了..
可以用命令.# dmesg | grep eth 教育
来查看系统启动信息,显示出 eth0 或者 eth1 的信息,如果eth1没找到正确.的信息,那就表示 Linux 无法找到该硬.件,.
e.th0是8139的,已经显示正常,例如:<性病>
[root@kindgeorge root]# .dm.esg | grep eth( 游戏 )
eth.0: Real.Tek RTL8139 Fast Ethernet at 0xf0160000,. 00:0a:a6:30:0d:0e, IRQ 11.
eth0: Id.entif.ied 8139 chip type 'RTL-8139C' 乙肝
eth0: Setting 10mbps full-duplex based on aut.o.-negotiated partner .ability 4061..
复制代码
一. .查看自己系统的内核版本..
[roo.t.@kindgeorge root]# uname -r电影
2.4.18-3
复制代码
我.这里是redhat7.3的,内核2.4.18-3.
一般来说,这个内核驱动程序的模块会放在 /lib/modules/2.4.18-3/kern.el./drivers/net 电子
二.确定系统是否已.经安装下面包.
1.由于编译需要用到内核的源代码包和编译程序gcc.所以.如果.没有的话,要先装.域名
查看:
[root@kindgeorge ro.ot]# rpm .-qa|grep kernel--------------彩票
kernel-2.4..18-3 女人
kernel-sourc.e-2.4.18-3.
[root@kindgeorge root]# rpm -qa|gr.ep gcc (.gcc是编译用).
gcc-2.96-110
gcc-g77-2.9.6-110.
gcc-.c++-2.96-110服务器
复制代码一般装了.内核源包的话,都会在出现/usr/src/linux-2.4,同路径下会有linux-2.4..18-3的文件实际目录..
2.如果没有的话,就用原来安装.盘上的文件安装,会去下载个相同内核源包安.装吧投资
rp.m -ivh kernel-source-2.4.18-3.i3.86.rpm教育
复制代码
......
三. 取得驱动程序和编译
1. . 可以重厂家提供的光盘提供,把光盘上的linux目录下的dlkfet-4.24.tar.gz .拷贝过来用. 电子
2. 从.网上下载网络卡驱动程序,一般厂家.的网站都提供下载程序的. 汽车
例如:
http://www.d-link.com.cn 上有下载.( 游戏 )
[
root@ki.n.dgeorge root]# cp dlkfet-4.24.tar.gz /usr/src 杀毒
[root@kindgeorge root]# cd. /us.r/src/ 健康
[
root@kindge.orge src]# tar -.zxvf dlkfet-4.24.tar.gz 投资
dlkfet-4.24/
dlk.fet-4.24/rhine_main.c.
dlkfet-.4.24/Makefile服务器
dlkfet-4..24/vmns_drv.h.
dlk.fet-4.24/rhine.h.
dlkfet-4.24/.dep.end.mak.
dlkfet-4.24/rhine_vmn.s.c健康
dlkf.et-4.24/rhine_proc.h.
dlkfet-4.24/rhine_pr.oc.c 女人
dlkfet-4.2.4/rhine_vmns.h投资
dlkfet-4.24/kcompat.h.<性病>
dlkfet-4..24/rhine_cfg.h[成人用品]
dlkfet-4.24/.depe.nd.
dlkfet-4..24/rhine_wol.c( 游戏 )
dlkfet-4.24/r.hine_wol.h.
dlk.fet-4.24/linux.txt服务器
复制代码
3.请留意一开始是没有.o文件的.. 我们编译前可以看看目录.的linux.txt,是一个包含介绍安装说明.在进入目录后,执行make进行编译.教育
[root@kindgeorge .src]# cd .dlkfet-4.24 杀毒
[root@kindgeorge dlkfet..-4.24]# make.
[roo.t@kindgeorge. dlkfet-4.24]# ll (编译后查看一下).
total 320
-rw-r--r-- 1 roo..t 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 rhi.ne.h 乙肝
-rw-r--r-- 1 root . root 78996 Jan 16 2003 rhi.ne_main.c 外汇
-rw-r--r-- 1 root root 32760 May 24 1.8.: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 200.3 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_v.mns.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/k..ernel/drivers/net健康
[root@kindgeorge dlkfet-.4.24]# dep.mod -a.
复制代码
5.测试
(1)可以用命令modprobe rhin.efet 或 insmod rhinefet.o 加载.如果没出.错信息说明ok. 外汇
(2) 用命令lsmod 可以看看是否已经加载.了. 婚庆
[root@kindgeorge .dlkfet-4.24.]# lsmod .
Module Si..ze Used by Not tainted--- 印刷
rhi.nefet 38752 . 1 服务器
8139too. 16448 .1 .
mii 2408 .0 [8.139too].
复制代码
这样,看到r.hinefet模块已经加载了,基本上,这.样就证明已经编译成功. 教育
6. 让它开机时加载
[root@kindgeorge dlkfet-4.24.]# vi /etc/modules..conf 外汇
在后面.加上一行: alias eth1 rhinefet. 教育
复制代码
7. 配置一下网络
[root@kindgeorge dlkf.et-4.24]# vi /etc/sysconfig./network-scripts/ifcfg-eth1.
DEVICE=eth1
BOOTPROTO=sta.tic电影
IPADDR=192.168..4.202学习
NETMA.SK=255.255.255.0.
NETWORK=.192.168.4.0.
GATE.WAY=192.168.4.250( 游戏 )
BROADCAST=192.1.68.4.255电影
ONBOOT=yes
复制代码
8.启动网卡,然后用ifconfi.g查看, 电子
ifup eth1
[
root@ki.ndgeorge dlkfet-4.24.]# ifconfig ( 游戏 )
eth0 . Link encap:Ethernet HWaddr 00:0A:E6:.30:0D:0E .
. ine.t addr:211.239.218.153 Bcast:211.239.218.255 Mask.:255.255.255.0.
UP BROADCAST RUNNING MULTICAST MT.U:1.500 Metric:1( 游戏 )
.RX packets:3780479 errors:.0 dropped:0 overruns:0 frame:0--------------彩票
. . TX packets:3833860 errors:0 dropped:0 overruns:0 carrier:0<性病>
col.lisions:0 .txqueuelen:100 美容
. RX bytes:1118112324 (1.066.3 Mb) TX bytes:1111887387 (1060.3 Mb) 建材
. Interrupt:11 建材
eth1. Link encap:Eth.ernet 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 overrun.s:0 frame:0 杀毒
TX .packets:976174 errors:0 dropped:0 overruns:0 carrie.r:0.
colli.sions:0 txqu.euelen:100 .
RX bytes:436.95059 (41.6 Mb.) TX bytes:1472142037 (1403.9 Mb) 电子
Interrup.t:5 Base add.ress:0xe000服务器
复制代码
9.重新启动机器,可以自动加载和使用了..大功告成.学习
五. 按照安.装说明的方法自动编译安装. .
在 ."三.3" 中我们用make 编译,然后进行手动的拷贝.. 实际上在linux.txt中的安装说明提到用make install .[成人用品]
那我们来看看这种.方法系统都做了什么吧.域名
[r.oot@firewall1 dlkfet-4.24]# make install. 女人
gcc -Wall -DLINUX -D__KERNEL_._ -DMO.DULE -.DEXPORT_SYMTAB -D__NO._VE.RSION__ -O2 -pipe -I/lib/.modules/2.4.18-3/build/include -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -in.clude /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._VER.SION.__ -O2 -pipe -I/lib/modules/2.4.18-3/bui.ld/include -I. -Wstrict-prototypes -fomit-frame-p.ointer -DMODVERSIONS -include /lib/modules/2.4.18-3/build/include/linux/modversio.ns.h -DVMNS -c -o rhine_proc.o rhin.e_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./b.uild/include/linux./modversions.h -DVMNS -c -o rhine_wol.o rhine_wol.c 健康
gcc -Wall -DLINUX -D__KERNEL__ -DMODULE -D.EXPORT_SYMTAB -D__NO_VERSION__ -O2 -p.ipe -I/.lib/modules/2.4.18-3/build/includ.e -I. -Wstrict-prototypes -fomit-frame-pointer -DMODVERSIONS -include /lib/m.od.ules/2.4.18-3/build/include/linux/modversions.h -DVMNS -c -o rhine_vmn.s.o rhine_vmns.c<性病>
*******************************.*.******************电影
Build options:
.VERSION 2.4.18-3 鲜花
SMP . Disabl.ed教育
VMNS . .Enabled.
*****.************.********************************** 汽车
mkdir -p /lib/modules/2.4.18-3/.kernel/drivers/.net 汽车
install -m 644 -o r.oot 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-r.hine.o.backup--------------彩票
/sbin/dep.mod -a || true虚拟主机
复制代码
按照上面的结果显示是这样的.一个过程:
(1)系统把.c等文件编译成相应的.o.文件. <性病>
(2)然后.显示系统是否支持SMP和V.MNS,然后把相应的.o模块文件拷贝到系统应该的地方.虚拟主机
(3)并且把相同芯片的程.序过时的via-rhi.ne.o改为备份文件.让系统用新的rhinefet.o --- 印刷
(4)最后执行/sbin/depmod -a 更新模.块库配置. 看.来这个也是个智能的安装方法..
六. 用其他方法驱动.
由于市面上很多的各种各样的板卡,有名牌有杂牌,多不胜数.当我们拿到一块卡.,但一下子没找到它本身提供的源程序,不能编译,怎么办呢.? 电子
所以当你有一块网卡不能用,在找linux的driv.er之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如.3c509,ne20.00,etherexpress等等.--- 印刷
这样的型.号一般都在网卡上最大的一快芯片上印着...如果芯片型号相同,那么它们其中一些是可以通用的.我们可以尝试一.下系统上已经安装了的驱动是否可行了.进入驱动目录/lib/modules/(内核版本)/kernel/drivers/net 即可发现已经有很多模块了, 用命令 insmod 相应芯片模块名字(广告)
复制代码, 如果不成功会报错,如果正确则不显示错误信息,然后再进行上面的"三.5-9"步.骤进行测试.如果不行,再老老实实的找源程.序吧..