一般来说,目前新版的 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. 从网上下载网络卡驱动程序,一般厂家的网站都提供下载程序的. 例如: http://www.d-link.com.cn 上有下载. [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 |