Linux技能:网络接口卡

Linux技能:网络接口卡

首先,我所写的文章都是以2.4.20-8版本为例子.以后的文章没有特殊写明都以此为准.大家可以通过以下命令查看自己的系统版本!

[root@localhost root]# uname -a
Linux localhost 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux

在2.4版本以后linux可以支持的网卡芯片已经非常的全面了,除了一些杂牌的外基本上主流与二流都给支持了.大家可以用以下命令看到系统支持的网卡芯片驱动

[root@localhost root]# ls /lib/modules/2.4.20-8/kernel/drivers/net/
3c501.o    acenic.o            de4x5.o  eepro100.o  hamradio    ne.o           ppp_synctty.o  smc-ultra.o  tun.o
3c503.o    aironet4500_card.o  de600.o  eepro.o     hp100.o     netconsole.o   r8169.o        starfire.o   via-rhine.o
3c505.o    aironet4500_core.o  de620.o  eexpress.o  hp.o        ni5010.o       rcpci.o        strip.o      wan
3c507.o    aironet4500_proc.o  defxx.o  epic100.o   hp-plus.o   ni52.o         sb1000.o       sundance.o   wavelan.o
3c509.o    amd8111e.o          depca.o  eql.o       irda        ni65.o         shaper.o       sungem.o     wd.o
3c515.o    appletalk           dgrs.o   es3210.o    lance.o     ns83820.o      sis900.o       sunhme.o     winbond-840.o
3c59x.o    arlan.o             dl2k.o   eth16i.o    lne390.o    pcmcia         sk98lin        tc35815.o    wireless
8139cp.o   arlan-proc.o        dmfe.o   ethertap.o  lp486e.o    pcnet32.o      skfp           tg3.o        wireless_old
8139too.o  at1700.o            dummy.o  ewrk3.o     mii.o       plip.o         slhc.o         tlan.o       yellowfin.o
82596.o    atp.o               e100     fc          natsemi.o   ppp_async.o    slip.o         tokenring
8390.o     bonding.o           e1000    fealnx.o    ne2k-pci.o  ppp_deflate.o  smc9194.o      tulip
ac3200.o   cs89x0.o            e2100.o  hamachi.o   ne3210.o    ppp_generic.o  smc-ultra32.o  tulip_old

以上的.o后缀文件就是驱动程序了,没有后缀的是目录.

一般在系统启动的时候都会自动的加载网卡驱动程序模块.有的时候可能因为系统没有你的芯片驱动,以至系统根本就没可能加载网卡驱动模块.对初学者来说,可能在此就已经调试很久,而又调试不好.最终因为无法上网怒而删除辛苦安装的linux系统.这里大家可以用以下命令去查看网卡驱动模块是否被加载.

[root@localhost root]# lsmod
Module                  Size  Used by    Not tainted
es1371                 30792   0  (autoclean)
ac97_codec             13640   0  (autoclean) [es1371]
gameport                3364   0  (autoclean) [es1371]
soundcore               6404   4  (autoclean) [es1371]
ppp_synctty             7904   0  (unused)
ppp_async               9440   1
ppp_generic            24444   3  [ppp_synctty ppp_async]
slhc                    6740   0  [ppp_generic]
parport_pc             19076   1  (autoclean)
lp                      8996   0  (autoclean)
parport                37056   1  (autoclean) [parport_pc lp]
autofs                 13268   0  (autoclean) (unused)
pcnet32                18240   1
mii                     3976   0  [pcnet32]
ipt_REJECT              3928   6  (autoclean)
iptable_filter          2412   1  (autoclean)
ip_tables              15096   2  [ipt_REJECT iptable_filter]
sr_mod                 18136   0  (autoclean)
ide-scsi               12208   0
ide-cd                 35708   0
cdrom                  33728   0  [sr_mod ide-cd]
keybdev                 2944   0  (unused)
mousedev                5492   1
hid                    22148   0  (unused)
input                   5856   0  [keybdev mousedev hid]
usb-uhci               26348   0  (unused)
usbcore                78784   1  [hid usb-uhci]
ext3                   70784   2
jbd                    51892   2  [ext3]
mptscsih               37392   3
mptbase                41792   3  [mptscsih]
sd_mod                 13452   6
scsi_mod              107128   4  [sr_mod ide-scsi mptscsih sd_mod]

红色部分就是我的网卡,因为我是在虚拟机上装的.所以模块名就是pcnet32了.找到网卡模块看到最后没有 (unused)的存在就表示已经加载成功.大家可能会问,网卡驱动模块名我怎么会知道其实也是通过命令去查找的.命令如下:

[root@localhost root]# lspci
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB
00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0f.0 VGA compatible controller: VMWare Inc: Unknown device 0405
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 (rev 01)
00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
00:12.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)

如果在此看到网卡类型,而没有被加载可以通过以下命令进行加载

[root@localhost root]# modprobe pcnet32

如果出现错误,说明模块不存在.这时你就应该找到正确的模块并且重新编译了.如果你的网卡是杂牌,在官网都找不到linux下用的驱动的.那么你就看你网卡上最大的芯片型号是什么,抄下来.找到与此相兼容的芯片驱动就可以了!

那现在网卡驱动装好了,也加载了.那么接下来就是要设置IP地址信息.为linux网卡设置IP地址方法非常的灵活,大家根据需要选择.我介绍三种方法.

1.命令模式
[root@localhost root]# ifconfig eth0 192.168.0.1 netmask 255.255.255.0

命令模式只在本此启动有效,关机或重启必须重新设置.

2.文本图形模式
[root@localhost root]# netconfig

此方法设置为永久保存的.

3.图形界面
[root@localhost root]# neat

最后这种方式为大多数人使用,因为是在图形界面下设置的.同时此界面可以设置ADSL等方式的上网.

当然还有其他的方法,比如说经典的修改配置文件了!但这里我就不写了.
文本图形模式好像是这样的吧?
system-config-netconfig