随笔-113  评论-60  文章-0  trackbacks-3
  2006年11月21日

新手指南:Linux下如何安装网卡
 
 

--------------------------------------------------------------------------------
 
  本文主要面对新新手,不对任何高难度问题进行讨论,包括双网卡,正常编译了driver也不能用的古怪网卡等.本文的主要目的是告诉新新手,Linux下网卡是怎样被驱动的.本文不讨论安装Linux的问题,假设用户已经成功安Linux,就等驱动网卡.
  第一步--不要再问 Linux下能够装XXX卡么? 这样的问题,Linux是个开放的系统,借助于网络上无数的高手,几乎所有的硬件都能找到支持.

  首先需要指出,Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.比如我的Accton 网卡,就不存在Linux的driver,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的driver之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等.这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了.
 


  最普遍使用也许是最好配的网卡也许就是Ne2000兼容卡了,我用它来作例子.注意实际上很多廉价卡都是NE2000兼容的.

  对于NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.很多现在的网卡缺省都是PnP模式,这在95下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有程序将网卡设为Jumpless.当然如果是老卡,本来就不是PnP,不用管这个.注意,这里主要是ISA的NE2000,关于PCI的NE2000,需要另外设置.

  下来就是得弄清楚网卡的IO地址和IRQ.这是两个非常重要的网卡驱动参数.这个最简单就是还用那个网卡的设定程序,设定完Jumpless之后肯定有地方可以软设定IO和IRQ.老一些的卡得跳线,道理一样.另外一个方法是如果网卡能在95或NT下工作,去95下的control panel里看这个卡的properities,查IO和IRQ.

  OK,到现在,你知道了你的卡是NE2000兼容,知道了它是在Jumpless模式下,知道了IO地址和IRQ,就可以安装了.

  Linux系统与95这些系统不同的一点是它是运行在 内核 上的,所谓内核,就是把系统最核心的部分孤立出来编程,将各种驱动程序,内存控制等部分编在一起.于95不同,Linux得内核是公开的,经常更新的,这样不需要更新整个系统,用户只需要把最新的内核原程序download下来编译,就可以得到一个支持更多硬件,更多文件系统,更安全的系统了.所以需要指出,Linux的Driver很少有象95下那样是 安装 的.Linux下的driver大多数都是以C程序形式发布,或者在内核里,或者需要用户自己修改内核代码.总之要让Driver运行,得重新配置编译内核.如何操作Linux内核是学习Linux中非常重要的一节.Linux的新手最好在这里多下点功夫搞清楚.有关核心的问题建议看Linux How To文档中的kernel How to.

  Anyway, Linux已经装好了,那么用的是什么内核呢?一般缺省的Linux内核是从安装盘上来的.那个内核一般包括大多数硬件的驱动程序,比如Ne2000卡.所以未一定要重新编译内核,也许现有的内核就可以驱动.所以下一步就是把网卡插入计算机,看看Linux能否发现它.这可以从Linux的启动画面中看出来,如果你发现如下的一行:

  eth0:NE2000 card found at 0x300 using IRQ 05

那就说明Linux发现了NE2000卡,在IO 300, IRQ 05的地方.

  如果Linux没有发现你的网卡,但是你确认你网卡得型号和参数,比如我的网卡是NE2000兼容,IO 0x300, IRQ 05.那么可以修改Linux启动文件专门搜索这个设备.这个文件在/etc/rc.d/rc.modules里对于NE2000,是这样的:

  #/sbin/modprobe ne io=0x300 # NE2000 at 0x300

将最前面的#号去掉,再启动机器试试.

  另外该文件里还可以发现对其它系列网卡比如3C系列的autoprobe.

  OK,到现在启动屏幕上也没有出现

  eth0:NE2000 card found at 0x300 using IRQ 05

这样的好消息,那么你就得编译内核了.

编译内核之前一定要搞清楚的是网卡的芯片号.比如我有一块SMC的网卡,但是我是无法在Linux的内核配置菜单里找到SMC这样的字样的,Linux不是win95,有那么长一串厂商牌号等.我在这个SMC的卡上找到了digital 21140-AE的字眼,于是我知道这个卡用的是DEC 21140-AE芯片,于是按照这个寻找,就找到了驱动.

  知道了芯片类型,或者兼容类型(比如ne2000)就可以开始编译内核了.具体的针对不同系统的内核编译推荐先看看有关内核编译的文章,这里不多作介绍.

  进入/usr/src/linux

  运行make menuconfig进入菜单配置内核.找到Network Device Support.选则EtherNet,再选则相应的芯片号.如果是ISA系线的NE2000,就选则other ISA cards,选则NE2000/NE1000 ISA support.如果是PCI的网卡,就选则PCI ethernet adapters.注意,PCI卡未必都能这样驱动,很多都不行,得另外找driver.比如Intel PCI EtherExpress Pro 100等.

  有关其它选项希望能多自己摸索.多看看help和how-to.

  配置完内核后,运行make dep;make;make zlilo就可以了.如果内核选项过多会出现过大的情况而无法安装.那么需要把一些不必要的驱动去掉.

  一般这样之后再启动就可以发现网卡了.驱动了网卡,下一步就是设定TCP/IP这些东西.这就不是这里的内容了.

  我的经验,Linux下NE2000兼容卡都比较好设.3c系列的卡也都有支持.至于其它卡比如我的DEC 21140就麻烦很多.

  另外有些卡即使用某种芯片也未必就能用这个芯片的驱动,这种情况就是有驱动程序也不能用,就需要上网查了.

  有关Intel Etherexpress系列卡的配置.Linux内核中有Etherexpress 16的支持,但没有其它卡的driver.在http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html里有关于EtherExpress 100B pro的讨论.在那里可以download到一个c源码的驱动程序,编译进内核就可以了.

那么,如果以上都试过了,而你的网卡的确还是不能认,那么你需要上网查driver了.在网上查东西是一门看起来简单实际上极体现经验的学问.建议寻找Linux网卡的driver从http://cesdis.gsfc.nasa.gov/linux/drivers/开始.在那里可以发现的针对网卡得驱动有:

DEC DC21*4* Tulip chip based cards

3Com PCI Etherlink PCI and EISA cards

Intel EtherExpress Pro100B, Pro100+ and Pro10+ PCI

3c515 ISA Fast Etherlink card

SMC EtherPower II (EPIC/100 83c170 chip) driver.

RealTek RTL8129/8139 driver.

Lite-On lc82c168 PNIC driver (now merged with the Tulip driver).

Macronix MX98713 and ASIX experimental drivers are now merged with the Tulip driver).

VIA Rhine (VT86C100A and 3043) driver (now released).

Winbond w89c840 driver (beta test). Note: this driver was written without official documentation.

TI ThunderLAN driver (external link -- Caldera/James Banks).

Hewlett Packard 100VG driver updates (external link -- Yaroslav).

Intel EtherExpress Pro/10 PCI driver (remote link).

3c509/3c529/3c579 ISA/MCA/EISA EtherLink III driver update. The driver now detects multiple cards when loaded as a module.

AMD LANCE/PCnet driver update. The driver is now usable as a loadable module.

Cirrus/Crystal/IBM CS8900 series driver (remote link).

PCI NE2000 driver (local page)

PCI NE2000 updates (remote link)

Intel Etherexpress Pro 100,

DEC 21X4* based board,

3Com EtherLink III PCI/EISA (3c590 3c592,3c595,3c597,3c900 3c905)

Intel EtherExpress Pro/10 PCI9 With i82596 Chip)

TI ThunderLan

PCI NE2000

Packet Engines Yellowfin G-NIC

SMC EtherPower II (EPIC/100 83c170 chip)

RealTek RTL8129/8139

  同时还有一个Ecom EtherLink III family 的setup程序,没有用过,也许不错.

  如果这里你还是没有找到相应的网卡驱动,那么就去search了.我推荐的方法是上Internet Newsgroup查.因为你绝对不是第一个在Linux下用这个网卡的人,你的问题绝对有人在网络上问过.而且有人回答过.那么问题就是如何找到他. 最简单的方法是打开netscape 到www.dejanews.com去.这里的关键是关键字的选则,比如我有个卡的芯片是DEC的21140,那么我考虑到21140已经是个长数字,于是输入21140 linux来搜索,这里Linux是必须的,否则看到上千篇关于21140 win95的驱动问题,是不是很烦?结果21140 linux很快就找到了有关文章.

  如果这样也找不到驱动程序,或者有了驱动程序不知道怎么用,用了出问题,再来版上问.记得把具体的网卡型号,芯片型号,你作过什么努力,什么问题等都写清楚,以便于他人帮助.
 

posted @ 2006-11-21 21:34 灵风 阅读(230) 评论(0) 编辑
Linux服务器网卡驱动安装及故障排除(转)
转自:http://www.ccw.com.cn/server/yyjq/htm2005/20050817_15OF4.htm感谢原创作者
曹江华

                                Linux 服务器网卡驱动安装及故障排除
        网卡是Linux服务器中最重要网络设备。据统计,Linux网络故障有35%在物理层、25%在数据链路层、10%在网络层、10%在传输层、10%在对话、7%在表示层、3%在应用层。由此可以看出,网络故障通常发生在网络七层模型的下三层,即物理层、链路层和网络层。对应于实际网络也就是使用的网络线缆、网卡、交换机、路由器等设备故障。Linux的网络实现是模仿FreeBSD的,它支持FreeBSD的带有扩展的Sockets(套接字)和TCP/IP协议。它支持两个主机间的网络连接和Sockets通讯模型,实现了两种类型的Sockets:BSD Sockets和INET Sockets。它为不同的通信模型和服务质量提供了两种传输协议,即不可靠的、基于消息的UDP传输协议和可靠的、基于流的传输协议TCP,并且都是在IP网络协议上实现的。INET sockets是在以上两个协议及IP协议之上实现的。它们之间的关系见图1所示。

由于交换机、路由器通常独立于Linux或者其他操作系统。网卡设置故障是造成Linux 服务器故障最主要原因。可能因为硬件的质量或性能、磨损老化、人为误操作、不正确的网络设置、管理问题、Linux软件的BUG、系统受到黑客攻击和Linux病毒等原因造成。
Linux 服务器网卡故障排除的思路是:应当遵循先硬件后软件的方法。因为硬件如果出现物理损坏那么如何设定网卡都不能解决故障。解决问题的方法可以从自身Linux计算机的网卡查起,如果确定硬件没有问题了,再来考虑软件的设定。
1.        网卡的选择
一般来说,2.4版本以后的 Linux可以支持的网卡芯片组数量已经很完备了,包括著名厂商如:Intel 以及使用广泛的 RealTek, Via 等网卡芯片都已经被支持,所以使用者可以很轻易的设定好他们的网络卡。但是由于Linux发行版本众多(目前超过188个),使用前最好查看Linux发行版本的文档。以Redhat Linux 9.0为例,这个设备列表在Ethernet- HOWTO文档中。另外最直接的方法是查看一个目录:/lib/modules/release/kernel/drivers/net,其中release是内核版本,可以使用命令:“uname -r”获得。对于Redhat Linux 9.0是2.4.20-8。
#ls /lib/modules/2.4.20-8/kernel/drivers/net/
3c501.o             atp.o       eth16i.o      ni52.o         smc-ultra.o
3c503.o             bonding.o   ethertap.o    ni65.o         starfire.o
3c505.o             cs89x0.o    ewrk3.o       ns83820.o      strip.o
3c507.o             de4x5.o     fc            pcmcia         sundance.o
3c509.o             de600.o     fealnx.o      pcnet32.o      sungem.o
3c515.o             de620.o     hamachi.o     plip.o         sunhme.o
3c59x.o             defxx.o     hamradio      ppp_async.o    tc35815.o
8139cp.o            depca.o     hp100.o       ppp_deflate.o  tg3.o
8139too.o           dgrs.o      hp.o          ppp_generic.o  tlan.o
82596.o             dl2k.o      hp-plus.o     ppp_synctty.o  tokenring
8390.o              dmfe.o      irda          r8169.o        tulip
ac3200.o            dummy.o     lance.o       rcpci.o        tulip_old
acenic.o            e100        lne390.o      sb1000.o       tun.o
aironet4500_card.o  e1000       lp486e.o      shaper.o       via-rhine.o
aironet4500_core.o  e2100.o     mii.o         sis900.o       wan
aironet4500_proc.o  eepro100.o  natsemi.o     sk98lin        wavelan.o
amd8111e.o          eepro.o     ne2k-pci.o    skfp           wd.o
appletalk           eexpress.o  ne3210.o      slhc.o         winbond-840.o
arlan.o             epic100.o   ne.o          slip.o         wireless
arlan-proc.o        eql.o       netconsole.o  smc9194.o      wireless_old
at1700.o            es3210.o    ni5010.o      smc-ultra32.o  yellowfin.o
可以看到这个目录列出所有Linux内核支持的网络设备驱动程序。其中大部分是以太网卡(8139、3COM、Intel)。也有一些是其他类型设备。对于初学者应当尽量选择目录中已经列出的网卡。注意以.o 后缀结束的文件就是驱动程序。而没有后缀的是驱动程序目录(红色)。
2.        检查网卡是否加载:
驱动硬件是操作系统最基本的功能,操作系统通过各种驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMs Loadable Kernel Modules),就是将最基本的核心代码编译在内核中,网卡驱动程序是作为内核模块动态加载的。可以使用命令“lsmod”查看加载情况:
## lsmod
Module                  Size  Used by
dm_mod                 54741  0
button                  6481  0
battery                 8901  0
ac                      4805  0
md5                     4033  1
joydev                 10241  0
uhci_hcd               31065  0
ehci_hcd               30917  0
snd_via82xx            26437  0
snd_ac97_codec         63889  1 snd_via82xx
snd_pcm_oss            49017  0
soundcore               9889  1 snd
tulip                  45025  1
via_rhine              23113  2
mii                     4673  1 via_rhine
ext3                  116809  2
jbd                    71257  1 ext3
对每行而言,第一列是模块名称;第二列是模块大小;第三列是调用数。调用数后面的信息对每个模块而言都有所不同。如果 (unused) 被列在某模块的那行中,该模块当前就没在使用。如果 (autoclean) 被列在某模块的那行中,该模块可以被 rmmod -a 命令自动清洗。当这个命令被执行后,所有自从上次被自动清洗后未被使用的被标记了“autoclean”的模块都会被卸载。丛以上红色粗体字符可以看到笔者Linux计算机中两块网卡模块:tulip和via_rhine 已经加载。对应的网卡商业型号分别是:
tulip:Lite-On Communications Inc LNE100TX [Linksys EtherFast 10/100]
via_rhine:Via VT6102[Rhine-II] 常见主板集成网卡。
如果没有检测到硬件,用硬件检测程序kuduz检测网卡,它和Windows中添加新硬件差不多。kudzu程序是通过查看/usr/share/hwdata/目录下的文件识别各种硬件设备的。如果核心支持该硬件,并且有该驱动程序就可自动装载。首先说明的是Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.比如我的Top link网卡,就不存在Linux的驱动,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的驱动程序之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000等。这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了。对于ISA接口的NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.很多现在的网卡缺省 都是PnP模式,这在Windows下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该程序将网卡设为 Jumpless。对于PCI网卡,可以使用命令来查看:lspci。在显示的列表中找到“Ethernet Controller”,记下厂商和型号。然后使用modprobe尝试加载正确的模块,比如modprobe 3c509。如果出现错误,说明该模块不存在。这时候你应该找到正确的模块并且重新编译。问题一般即可解决。
如果很不幸的,您使用的是比较罕见的一些网卡,或者是 Linux 核心支持不够的网卡,以致于在安装 Linux 时,并无法检测到网卡,那也不用担心,我们可以使用较为简单的核心模块编译来支持这张网卡。下面以笔者的3Com的3CR990-TX-97 网卡为例(一款具有安全特性网卡)看看如何进行模块编译。首先在其网站http://www.3com.com/infodeli/tools/nic/linuxdownload.htm 下载合适你使用内核版本的相关驱动程序,这里以2.4内核为例。
#wegt http://www.3com.com/infodeli/tools/nic/3c990-1.0.0a.tar.gz

另外在开始编译核心模块之前,因为驱动程序需要配合核心来编译,所以会使用到 kernel source 或者是 kernel header 的数据,此外,也需要编译器 ( compiler ) 的帮助,因此,先确定您的 Linux 系统当中已经下列软件的存在 :kernel-source 、kernel 、gcc 、make。
#tar zxvf 3c990-1.0.0a.tar.gz
#make
此时会产生3c990.o 驱动模块。然后使用命令拷贝到相应地方然后查看加载是否正常。
#modprobe 3c990
#cp 3c990.o  /lib/modules/2.4.20-8/kernel/drivers/net
# depmod -a
然后使用lsmod 命令检查加载情况,如果一切正常的话。可以让系统启动时自动加载该模块:
#echo “alias eth0 3c990”>;>; /etc/modules.conf

3.        为新网卡设定IP地址
在Linux 网络设备在配置时被赋予别名,该别名由一个描述性的缩略词和一个编号组成。某种类型的第一个设备的编号为 0,其他设备依次被编号为 1、2、3,等。但是网卡并不是最为裸设备出现在/dev目录下,而是存在内存中。eth0, eth1是以太网卡接口。它们用于大多数的以太网卡,包括许多并行端口以太网卡。本文主要讨论这类网卡。 为Linux以太网卡设定IP地址的方式非常灵活,你可以选择适合你工作情况的方法:
(1)        使用ip或ifconfig命令
ifconfig命令是最重要的Linux网络命令,最主要的用途是设定、修改网卡的IP地址,修改网卡ip地址:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0  
默认情况下, ifconfig 显示活动的网络设备。给这个命令添加一个 -a 开关就能看到所有设备。但是ifconfig命令设置网络设备的ip地址系统重新启动后设置会自动失效。所以它主要用于网卡状态调试。假设您要建立一个临时的网络配置以供测试。您可以使用发行版本中的工具来编辑配置,但是需要注意在完成测试之后,将所有设置恢复回去。通过使用 ifconfig ,我们无需影响已保存的设置,就能够快速地配置网卡。

Ip命令是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如:ifconfig、route等。 现在,绝大多数 Linux 发行版和绝大多数 UNIX都使用古老的arp, ifconfig和route命令。虽然这些工具能够工作,但它们在Linux2.2和更高版本的内核上显得有一些落伍。使用iproute2前你应该确认已经安装了这个工具。这个包的名字在RedHat Linux 9.0叫作“iproute2”,也可以在:ftp://ftp.inr.ac.ru/ip-routing/ 下载源代码安装。
如果希望在以太网接口eth0上增加一个地址10.0.0.1,掩码长度为24位,标准广播地址,标签为eth0:Alias:
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias

(2)        使用 netconfig命令
netconfig命令可以设置网络设备的ip地址,netconfig命令可以永久保存设置。
使用方法是:“netconfig ethX”。使用命令“netconfig eth0”后会在命令行下弹出一个对话框,这时即可进行设定见图2,

                图2 netconfig配置界面
设定结束后用“tab”键选择“OK”即可保存设置并且退出。然后使用命令:“service network restart “激活即可生效。

(3)        使用neat命令
使用neat命令需要配置好X window系统,在命令行下运行“neat”命令后添加IP地址和其他相关参数后保存设置,从新启动网络和网络服务或计算机,见图-3。

                图-3 图形界面添加IP地址
另外neat命令还有一个同价命令:“redhat-config-network”,二者完全相同。Neat和redhat-config-config命令可以永久保存设置。

(4)        修改TCP/IP网络配置文件
除非另行指定,Red Hat Linux 系统中大多数配置文件都在 /etc 目录中。网卡相关的TCP/IP网络配置文件是:/etc/sysconfig/network-scripts/ifcfg-ethx。其中x从0开始,第一个以太网配置文件即:/etc/sysconfig/network-scripts/ifcfg-eth0。使用vi编辑器修改这个文件,也可以修改网卡IP地址。
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0        #设定网卡的名称,要跟文件名称对应 #
ONBOOT=yes        #是否在开机的的时候启动网卡#
BOOTPROTO=static      #启动的时候的 IP 取得的协议,这里是固定的,
               如果是动态主机的话,要改成 dhcp 才行#
IPADDR=192.168.1.2     #IP 地址#
NETMASK=255.255.255.0   #子网掩吗#
NETWORK=192.168.1.0    #该网段的第一个 IP#
BROADCAST=192.168.1.255  #最后一个同网段的广播地址#
GATEWAY=192.168.1.2    #网关地址#
#GATEWAYDEV=eth0      
存盘后使用命令:“service network restart “激活即可生效。这个方法同样可以永久保存设置。

(5)        为网卡添加IPV6地址
和Windows系统相比Linux对Ipv6的支持更好,最早的支持Ipv6的Linux内核是 2.2.xxx。 一般Linux基于2.4内核的Linux发行版本都可以直接使用Ipv6,使用前要看系统IPv6模块是否被加载,如果没有的话可以使用命令手工加载,这需要超级用户的权限。然后使用命令检测,如果显示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)证明IPv6已经加载。
# modprobe IPv6;#ifconfig -a

如果希望Linux系统启动时自动加载Ipv6模块,可以在配置文件:/etc/modules.conf中加入一行:
alias net?pf?10 ipv6 # automatically load IPv6 module on demand


4.        调整网卡工作模式
       
  现在的网卡大多是自适应工作模式,在配置网卡参数时我们很少考虑它的工作模式,有时发现一些网卡模块已经加载,但是在某些模式工作不稳定。如笔者使用的一块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

  另外路由器、交换机、代理服务器等通信量比较大的关键设备上,应该为它指定正确的工作模式,这样可以提高通信效率。

5.        DHCP客户端网卡设定
     如果希望使用DHCP是动态主机配置协议,这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。当设备接入这个局域网时,它们会向 DHCP 服务器请求一个 IP 地址。然后 DHCP 服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有 IP 地址为止。已经分配的 IP 地址必须定时地延长借用期。这个延期的过程称作 leasing,确保了当客户机设备在正常地释放 IP 地址之前突然从网络断开时被分配的地址可以归还给服务器。Linux下配置DHCP客户端有两种方法:图形界面和手工配置。使用图形界面可以使用neat命令界面见图2。选中“自动获得IP地址设置使用DHCP”即可。
    通常笔者更喜欢使用选择手工配置 DHCP 客户,需要修改 /etc/sysconfig/network 文件来启用联网;并修改 /etc/sysconfig/network-scripts 目录中每个网络设备的配置文件。在该目录中,每个设备都有一个叫做 ifcfg-ethX 的配置文件,ethX是网络设备的名称。 如eth0等。如果你想在引导时启动联网,NETWORKING 变量必须 被设为 yes。 除了此处之外/etc/sysconfig/network 文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
6.        VPN服务器网卡设置
           VPN是由经过相互授权的通信双方在公网上建立的安全通信隧道,数据在隧道中进行加密传输,用于总部与分支机构的安全通信。虚拟专用网络是一种新的网络技术,用于跨过 Internet 或局域网而安全地访问企业网。Redhat Linux下的VPN技术主要有CIPE  (Crypto IP Encapsulation:加密 IP 封装)是主要为 Linux 而开发的 VPN 实现。CIPE 使用加密的 IP 分组,这些分组被封装或“包围”在数据报(UDP)分组中。CIPE 分组被给以目标头信息,并使用默认的 CIPE 加密机制来加密。CIPE 使用标准的 Blowfish 或 IDEA 加密算法来支持加密。根据你所在国家的加密出口法规而定,你可以使用默认方法(Blowfish)来加密你的专用网上的所有 CIPE 交通。CIPE 配置可以通过文本文件、图形化的网络管理工具来完成。这里以通过文本文件为例介绍。首先在服务器和客户端安装CIPE软件。官方网站:http://sites.inka.de/~ 运行CIPE VPN服务主要需要建立两个文件:/etc/sysconfig/network-scripts/ifcfg-cipcbX和/etc/cipe/options.cipcbX。X 是从0开始的递增数字。
(1)VPN服务器端网卡设置
                首先手工建立/etc/sysconfig/network-scripts/ifcfg-cipcb0文件,它是VPN服务器的虚拟网络接口,主要内容:
USERCTL=yes  #是否允许所有用户修改配置#
TYPE=CIPE    #接口类型#
DEVICE=cipcb0  #给 CIPE 设备命名#
ONBOOT=yes     #系统启动时激活设备#
IPADDR=10.0.0.1 #本地虚拟地址#
MYPORT=7777     #通讯端口#
PTPADDR=10.0.0.2 #远程虚拟地址#
PEER=0.0.0.0    #本地地址,0.0.0.0 表示接受连续监听#
ME=192.168.1.9  #对端的 CIPE UDP 地址#
TUNNELDEV=eth0  #隧道穿越设备#
然后建立/etc/cipe/options.cipcb0文件,这个文件存放密匙,主要内容:
cttl 64 #设置载体生存时间值(TTL);推荐的值是64#
maxerr –1  #服务器错误挂起时间#
key 54240266869983357939377846801171299051 #128位密匙#

(2)客户端网卡的配置
由于CIPE要求服务器和客户机的密匙完全相同所以,首先将密匙文件:options.cipcb从服务器复制到客户机主机的/etc/cipe/ 目录中。
# scp root@192.168.1.9:/etc/cipe/options.cipcb0 /etc/cipe/options.cipcb0
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.9' (RSA) to the list of known hosts.
root@192.168.1.9's password:
options.cipcb0       100% |***************************************|    61       00:00
然后使用vi编辑器建立客户端网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-cipcb0包含以下内容:
USERCTL=no    #不允许客户端修改配置#
BOOTPROTO=none
TYPE=CIPE             #接口类型#
DEVICE=cipcb0        #给 CIPE 设备命名#
ONBOOT=yes             #系统启动时激活设备#
IPADDR=10.0.0.2      #本地虚拟地址#
MYPORT=7777            #通讯端口#
PTPADDR=10.0.0.1         #远程虚拟地址#
PEER=192.168.1.29:7777     #VPN服务器真实IP地址和端口号#
ME=192.168.1.9            #对端的 CIPE UDP 地址#
TUNNELDEV=eth0    #隧道穿越设备#
MTU=“”           #使用缺省设置#
NETMASK=“”         #使用缺省设置#
NETWORK=“”         #使用缺省设置#
BROADCAST=“”     #使用缺省设置#
(3)使用ifup命令激活VPN网卡
# ifup cipcb0
这时VPN通道已经开启,可以使用tcpdump等工具检查。

7.        无线网卡在Linux下安装
        随着Linux网络技术的快速增长,硬件厂商大大加速对硬件产品对Linux的技术支持。使得Linux 支持的无线网卡的数量在过去的一两年里增长显著。一旦在计算机中安装好了无线局域网卡,首先要做的就是安装驱动来让网卡工作。无线网卡实现了IEEE 802.11系列协议中的一种或多种的物理层(PHY)和媒质访问控制子层(MAC)的功能,而驱动是用来控制无线网卡,向上提供与以太网一致的接口并提供其他一些无线局域网特定的管理接口的。对于不同厂商的不同网卡,还没有一种统一的方法可以驱动所有的网卡。首先必须确保内核配置中启动了无线局域网。如果没有无线局域网支持,你应该重新配置、编译内核来启动"Wireless LAN (non-hamradio) Drivers and Wireless Extensions"。   
目前,常见的无线网卡大多为PCMCIA、PCI和USB三种类型,笔者使用最多的是PCMCIA(Personal Computer Memory Card International Association)接口的无线网卡。 对于有些设备,配置无线连接非常简单:只要在您使用的 Linux 发行版本,插入无线网卡,在设置过程中单击鼠标,并输入正确的联网参数就可以了。通常基于朗讯(Lucent)芯片组的无线网卡的安装比较简单,笔者使用的Cisco Aironet Wireless 802.11b 在Mandrake 8.2 Linu安装程序可以顺利地找到设备驱动, 使用基于intersil PRISM2-based cards 芯片组的PCMCIA的无线网卡安装就比较复杂了。需要一个第三方工具安装。
目前经过www.Linux.org 认证的PCMCIA网卡有两大类。使用基于朗讯(Lucent)芯片组的PCIMCIA无线网卡和使用基于intersil PRISM2-based cards 芯片组的PCMCIA的无线网卡见表-1。
Lucent chipset-based cards         intersil PRISM2-based cards
Lucent Wavelan/IEEE and Orimoco        Linksys(WPC11 v2.5)
Cabletron/Enterays RoarmAbout        SMS(2632W)
Compaq(WL110、WL210、 WL215)         Compaq(WL100、WL200)
Apple Airport        Cisco Aironet Wireless 802.11b(340、350)
IBM High Rate Wireless LAN        Dlink DWL-650
HP 802.11bWiewless LAN        Nokia
DELL TrueMobile        Intel PRO/Wireless 2100
3Com AirConnect        SAMSUNG 11Mbps WLAN Card
LA4111 Spectrum24 Wireless LAN PC Card        PROXIM LAN PC CARD HARMONY 80211B
        NCR WaveLAN/IEEE Adapter
总的来说Linux下无线网卡的安装顺序一般是:
?        采取全部安装方式安装Linux发行版本,重新编译内核,并除去任何对内核提供的 PCMCIA 驱动程序的部分。
?        了解网卡的规格并且下载并编译相应的 PCMCIA-CS 库和驱动程序
?        下载、编译并安装无线网卡必需的所有驱动程序。这一步骤对于有些网卡是可选的,而对于有些网卡是必须执行的。做与不做很大程度上取决于您所选的无线网卡。
?        修改和无线网卡的相关设定。从新启动Linux系统和网络。
   设置无线网络相关步骤如下:
    (1)用“iwconfig”命令来显示无线网卡(eth0、eth1)的信息。在以下的步骤中,用ethX表示无线网卡的名称。
    (2)设置无线网卡的操作模式为Managed:
#iwconfig ethX mode Managed
    (3)如果采用了WEP加密,需要设置WEP密码:
#iwconfig ethX key password XXXXXX
    对应40位和128位加密,password分别为6位和10位的十六进制数字。
    (4)设置SSID,其中ESSID为无线接入(Access Point)的SSID。
   
# iwconfig ethX essid ESSID

    (5)创建/etc/sysconfig/network/ifcfg-ethX配置文件,使得机器每次启动时,无线网卡都会自动获得IP地址。该文件内容如下:

BOOTPROTO=‘dhcp’
MTU=‘’
REMOTE_IPADDR=‘’
STARTMODE=‘onboot’
UNIQUE=‘’

(6)启动无线网卡:
   
#ifconfig ethX up


1- 从windows 中得到网卡信息. Inter Pro VM 100
2- 从网上得到Linux 的网卡驱动
3- 按附带的网卡驱动安装步骤安装
a- 安装redhat 原码包
# mount /dev/cdrom
# rpm -i kernel-source-2.2.16-22.i386.rpm
# rpm -ivh kgcc-1.1.2-40.i386.rpm
b-安装驱动
# tar xfz e100-x.x.x.tar.gz
#cd e100-x.x.x/src/
#make install
4-改写配置文件
#vi /etc/modules.conf
最后增加一条
alias eth0 e100(e100是我的网卡的驱动)
5-配置网络
#netconf

网卡1
[X]启动
(O)手动 ()Dhcp ()bootp
IP XXX.XXX.XXX.XXX
Mask 255.255.255.0
网络设备 eth0
核心模块 e100

6-修改/etc/rc.d/rc.local,最后增加一条
#insmod /lib/modules/2.2.16-22/net/e100

7-执行
#insmod /lib/modules/2.2.16-22/net/e100.o

#sh /etc/lib/modules/2.2.16-22/net/e100.o
#sh /etc/rc.d/init.d/network reload

/*********************************/
#ifconfig

eth0 : Inter PRO VM .....(卡信息)
inet addr:XXX.XXX.XXX.XXX ....

reboot 机器, 乌拉,启动认出eth0了.终于成功了.

我是程序员不太懂硬件,在此谢谢各位热情的大师!!!



1、 获取DE-530TX的网卡在LINUX下的驱动程序,你可在DLINK的网站上下载,也可以在我的网页上下载(见最新驱动程序)。  

  2、把源程序拷贝到LINUX上的任何一个目录下,本例以/home/yang为例,把网卡的驱动的源程序拷贝到此目录下。  

  3、用LINXU自身带的任何文本编辑器把这个源程序打开,在末尾你可以看到编译此程序的命令行,把这个命令行复制。  

  4、 在LINXU的命令提示符下,进入/home/yang/目录下,把命令进行粘贴,回车即可,(注意命令行中的文件名要目录下的文件名相同)。回车稍侯,你就可以在此目录下看到*.o的文件,把这个文件改名为tulip.o,然后把这个文件拷贝到以下目录 、/lib/modules/2.2.14-5.0(注意,此目录根据你LINUX的版本号不同而不同)/net/tulip.o,询问你是否要覆盖,覆盖即可。  

  5、接着在命令提示符下,输入netconf命令,按以下步骤进行,(client tasks-basic host information-adapter1 .进入之后,分别设定域名,主机名,IP地址,子网掩码,注意,PCI的网卡不用设定I/o和IRQ,重新开机即可。
posted @ 2006-11-21 21:31 灵风 阅读(305) 评论(0) 编辑