注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷搜互联网应用www.iguso.com

谷搜专注企业邮箱十二年

 
 
 

日志

 
 

Linux 的网卡介绍  

2014-11-03 10:00:28|  分类: Linux技术文章 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

认识网络卡的装置代号

  在 Linux 里面的各项装置几乎都是以档案名称来取代的,例如 /dev/hda 代表 IDE1 介面的第一个 master 硬碟等等。 不过,网络卡的代号 (Network Interface Card, NIC) 却是以模组对应装置名称来代替的, 而预设的网络卡代号为 eth0 ,第二张网络卡则为 eth1 ,以此类推。

  关于网络卡的模组 (驱动程式)

  我们知道网络卡其实是硬体,所以当然需要核心支援才能驱动他。 美国空间一般来说,目前新版的 Linux distributions 预设可以支援的网络卡晶片组数量已经很完备了,包括大厂的 3COM, Intel 以及初阶的 RealTek, D-Link 等网络卡晶片都已经被支援, 所以使用者可以很轻易的设定好他们的网络卡。不过,万一你的网络卡晶片组开发商不愿意释出开放源 (Open Source) 的硬体驱动程式,或者是该网络卡太新了,使得 Linux 核心来不及支援时,那么你就得要透过:

  重新编译较新的核心,或者是

  编译网络卡的核心模组

  好让核心可以支援网络卡这块硬体啦!但是,重编核心或编译网络卡核心模组都不是简单的工作, 而且有时原始码又可能无法在每部主机上面编译成功,所以万一你的网络卡真的不被预设的 Linux 网络晶片所支援,那么我真的建议直接换一块被 Linux 支援的网络卡吧,例如很便宜的螃蟹卡! 免得花了太多时间在硬体确认上面,划不来的!

  另外,其实有的时候 Linux 的预设网络卡模组可能无法完全 100% 的发挥网络卡的功能的, 所以,有的时候你还是得必须要自行编译网络卡的模组才行哦!当然, 那个网络卡的模组就得要自行由网络卡开发商的官方网站下载了!不过,如果你的网络卡是自行编译安装的, 那么每次重新安装其他版本的核心时,你都必须要自行重新手动编译过该模组。 因为模组与核心是有相关性的啊!

  观察核心所捉到的网卡资讯

  假设你的网络卡已经在主机上面,不论是内建的还是自行安插到 PCI 或 PCI-x 或 PCI-E 的介面上, 那么如何确认该网络卡有被核心捉到呢?很简单啊!就利用 dmesg 来查阅即可:[root@www ~]# dmesg | grep -in eth

  377:e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection

  383:e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection

  418:e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

  419:eth0: no IPv6 routers present

  从上面的第 377 及 383 这两行,我们可以查到这部主机的两张网络卡都使用模组为 e1000,而使用的晶片应该就是 Intel 的网络卡了。此外,企业邮箱这个网卡的速度可达到 1000Mbps 的全双工模式哩 (418行) !除了使用 dmesg 来查询核心侦测硬体产生的资讯外,我们也可以透过 lspci 来查询相关的设备晶片资料哦!如下所示:[root@www ~]# lspci | grep -i ethernet

  00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet

  Controller (rev 02)

  请注意,我这里使用的是 Virtualbox 模拟的那部主机的环境 (请参考第一章 1.2.2-2),因此使用的是模拟出来的 Intel 网卡。 如果你是使用自己的实际硬体配备安装的主机,那么应该会看到不同的晶片啦!那是正常的!

  观察网络卡的模组

  从刚刚的 dmesg 的输出讯息中,我们知道我这部主机所使用的模组是 e1000 ,那核心有顺利的载入了吗?可以利用 lsmod 去查查看。此外,这个模组的相关资讯又是如何呢?使用 modinfo 来查查看吧![root@www ~]# lsmod | grep 1000

  e1000 119381 0 <==确实有载入到核心中!

  [root@www ~]# modinfo e1000

  filename: /lib/modules/2.6.32-71.29.1.el6.x86_64/kernel/drivers/net/e1000/e1000.ko

  version: 7.3.21-k6-NAPI

  license: GPL

  description: Intel(R) PRO/1000 Network Driver

  .....(以下省略).....

  上面输出资讯的重点在于那个档名 (filename) 的部分!那一场串的档名目录,外贸企业邮箱就是我们驱动程式放置的主要目录所在。 得要注意的是,那个 2.6.32-71.29.1.el6.x86_64 是核心版本,因此,不同的核心版本使用的驱动程式其实不一样哦!我们才会一直强调,更改核心后, 你自己编译的硬体驱动程式就需要重新编译啦!

  那你如何知道你的网络卡卡号呢?很简单啊!不管有没有启动你的网络卡,都可以使用: 『ifconfig eth0 』来查询你的网卡卡号。如果你照着上面的资讯来作, 结果发现网卡已经驱动了,恭喜你,准备到下一节去设定网络吧!如果没有捉到网卡呢?那就准备自己编译网卡驱动程式吧!

  评论这张
 
阅读(19)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018