如果核心没有支持该网络卡的话,那么可以透过重新编译核心或者编译网络卡驱动模块 ( Modules ),并且加载该模块,只有手动安装网络卡驱动程序了.
可以用命令
# dmesg | grep eth
来查看系统启动信息,显示出 eth0 或者 eth1 的信息,如果eth1没找到正确的信息,那就表示 Linux 无法找到该硬件,
eth0是8139的,已经显示正常,例如:
[root@cserver /]# dmesg | grep eth
eth0: VIA Rhine III at 0xff510000, 00:13:46:e2:4b:e9, IRQ 66.
eth0: MII PHY found at address 1, status 0x7869 advertising 05e1 Link 41e1.
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
一、查看系统内核版本
[root@cserver /]# uname -r
2.6.18-92.1.1.el5
二、检查编译环境:
(1)、内核源码包确认安装:
[root@qs /]# rpm -qa | grep kernel
kernel-headers-2.6.18-53.el5
kernel-devel-2.6.18-53.el5
kernel-2.6.18-53.el5
(2)、gcc 编译环境:
[root@cserver /]# rpm -qa | grep gcc
gcc-c++-4.1.2-42.el5
libgcc-4.1.2-42.el5
gcc-4.1.2-42.el5
三、 下载驱动并编译:
[root@qs src]# cd r8168-8.006.00/
[root@qs r8168-8.006.00]# make
make -C src/ clean
make[1]: Entering directory `/usr/src/r8168-8.006.00/src'
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers rset
make[1]: Leaving directory `/usr/src/r8168-8.006.00/src'
make -C src/ modules
make[1]: Entering directory `/usr/src/r8168-8.006.00/src'
make -C /lib/modules/2.6.18-53.el5/build SUBDIRS=/usr/src/r8168-8.006.00/src modules
make[2]: Entering directory `/usr/src/kernels/2.6.18-53.el5-i686'
CC [M] /usr/src/r8168-8.006.00/src/r8168_n.o
/usr/src/r8168-8.006.00/src/r8168_n.c:2266: warning: 'rtl8168_phy_power_down' defined but not used
LD [M] /usr/src/r8168-8.006.00/src/r8168.o
Building modules, stage 2.
MODPOST
CC /usr/src/r8168-8.006.00/src/r8168.mod.o
LD [M] /usr/src/r8168-8.006.00/src/r8168.ko
make[2]: Leaving directory `/usr/src/kernels/2.6.18-53.el5-i686'
strip --strip-debug r8168.ko
make[1]: Leaving directory `/usr/src/r8168-8.006.00/src'
make -C src/ install
make[1]: Entering directory `/usr/src/r8168-8.006.00/src'
install -m 744 -c r8168.ko /lib/modules/2.6.18-53.el5/kernel/drivers/net/
make[1]: Leaving directory `/usr/src/r8168-8.006.00/src'
进入 ./src 目录
[root@qs r8168-8.006.00]# cd src/
[root@qs src]# ls
Makefile r8168.h r8168.mod.o r8168_n.o
Makefile_linux24x r8168.ko r8168.o rtl_ioctl.c
Module.symvers r8168.mod.c r8168_n.c rtl_ioctl.h
r8168.ko 就是编译出的模块
然后加载模块:
[root@qs r8168-8.006.00]#cp r8168.ko /lib/modules/2.6.18-53.el5/kernel/drivers/net/
加载模块:
#insmod r8168.ko
卸载:
#rmmod r8168.ko
查看:
[root@qs net]# lsmod | grep r8168
r8168 34708 0
让它开机时加载
[root@kindgeorge dlkfet-4.24]# vi /etc/modules.conf
在后面加上一行: alias eth1 r8168
然后ok!!!
查看 linux 网卡驱动:
~]# kudzu --probe --class=network
产看网卡型号:
# lspci -v
06:00.0 Ethernet controller: VIA Technologies, Inc. VT6105 [Rhine-III] (rev 86)
Subsystem: D-Link System Inc DFE-530TX rev C
Flags: bus master, medium devsel, latency 32, IRQ 66
I/O ports at b800 [size=256]
Memory at ff510000 (32-bit, non-prefetchable) [size=256]
Expansion ROM at cfa00000 [disabled] [size=64K]
Capabilities: [40] Power Management version 2
调整网卡工作模式
现在的网卡大多是自适应工作模式,在配置网卡参数时我们很少考虑它的工作模式,有时发现一些网卡模块已经加载,但是在某些模式工作不稳定。如笔者使用的一块XXX品牌的杂牌RTL-8139C芯片10/100自适应网卡在100兆全双工状态下极其不稳定(在Qcheck的TCP和UDP的测试过程中,数据包遗失率9.12%。)。在Linux环境下,我们可以使用系统自带的工具mii-tool命令来配置网卡工作模式。显示Linux服务器网卡支持的所有以太网卡类型,使用命令:
# mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:00:00, model 0 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
从以上信息中可以看出,这块网卡工作在100全双工自适应模式下,“100aseTx-FD”意为100M Full Duplex。这里可以强制网卡工作在100M半工模式下,输入命令:
#mii-tool –F 100baseTx-HD eth0
以后恢复网卡的自适应工作模式,输入命令:
#mii-tool –r eth0
另外路由器、交换机、代理服务器等通信量比较大的关键设备上,应该为它指定正确的工作模式,这样可以提高通信效率。
阅读(4101) | 评论(0) | 转发(0) |