发信站: BBS 水木清华站   yuhj

在第n次看到"如何在Linux下配置我的XXX网卡"这样的问题之后

我觉得有必要把一些最基本的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模式.一般所有

网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该

程序将网卡设为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的支持,

有关于EtherExpress 100B pro的讨论.在那里可以download到一个c源码的

驱动程序,编译进内核就可以了.

那么,如果以上都试过了,而你的网卡的确还是不能认,那么你需要上网查driver了.

在网上查东西是一门看起来简单实际上极体现经验的学问.建议寻找Linux

在那里可以发现的针对网卡得驱动有:

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 dri

er).

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

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

l 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 detec

s 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

很快就找到了有关文章.

linux下架子网卡,Linux下新手装网卡指南相关推荐

  1. linux安装8168网卡,Fedora 配置 RTL8168/8111 网卡 Linux下 RTL8168/8111 网卡配置

    方法一. 官方下载Linux下驱动 r1000_r1.05.tgz 开始安装网卡驱动模块:进入存放rpm包的文件夹,这里我放在了/usr/src下面 #cd /usr/src #tar -zxvf r ...

  2. 固定linux虚拟机ip地址,虚拟机下linux 系统网卡配置、固定IP地址

    1.进入该目录下修改内容 vi       /etc/sysconfig/network-scripts/  ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static DEF ...

  3. [转]linux下基于SMP架构的多队列网卡的调优(Multi-queue network interfaces with SMP on Linux)

    转自: http://blog.csdn.net/vah101/article/details/38615795 在许多商业应用场景下,使用linux来搭建路由器是一种可选的方案.在这篇博文中,我们将 ...

  4. linux 有线网卡,linux下有线网卡出现ADDRCONF(NETDEV_UP): eth0: link is not ready的解决方法...

    一.背景 2018年5月24日,笔者的pc已经连续运转两天了,突然要使用有线网卡,却发现有线网卡无法正常工作,于是查看了一下内核日志: r8169 0000:05:00.0 eth0: link do ...

  5. Linux系统多网卡环境下的路由配置

    Linux下路由配置命令 添加主机路由 route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw 192.168.1. ...

  6. kali linux不用网卡驱动,Kali Linux ——在无网络情况下安装无线网卡驱动

    1.背景: 今日刚刚开始学习kali linux,众所周知,安装完成后,系统是没有无线网卡驱动的,这就对学生党造成相当的困扰:校园网要连接有线是需要认证客户端的,而认证客户端只有windows端,如此 ...

  7. 装了linux后windows被破坏了,windows下可以破坏linux的数据么-

    windows下可以破坏linux的数据么- (2011-08-28 01:58:11) 标签: 杂谈 windows下可以破坏linux的数据么?单机装了2个系统,一直都很好,后来发现xp不能进入了 ...

  8. Xp下的程序编译成linux,Windows XP下硬盘安装Linux系统

    作为一个Linux新手,第一次安装Linux系统,经过几个小时摸索,终于搞清楚在Windows XP系统下硬盘安装Linux系统的方法,跟大家共享. 第一步:在Window系统下必须存在两个分区(不妨 ...

  9. linux的免费虚拟机,Win10下的Linux+非虚拟机+非双系统+可靠教程+免费

    文|梁佐佐 为了用Linux环境搞科研或者做开发,你不惜花大量的精力去装虚拟机(内存开支大,有卡顿现象),或者怒装双系统(切换起来发现还不如买两块电脑-).无论怎样,Windows系统用起来更舒服,譬 ...

  10. Linux 学习记录之——Linux简介及Vmware 虚拟机下分区和centos6系统安装

    课程大纲: 一.UNIX 与Linux发展史: 1.比拟说,Unix是父亲,Linux是儿子. 2.Unix是六十年代中期,Linux80年代, Windows 90年代. 3.miutix 大而复杂 ...

最新文章

  1. db2 CLP中如何换行啊
  2. 网传一些著名互联网公司的实习工资,某节真的香啊
  3. python中dataframe导出文件_使用Python将Pandas DataFrame导出为PDF文件
  4. QT的QGLShaderProgram类的使用
  5. P5008-[yLOI2018]锦鲤抄【tarjan】
  6. 亚马逊标题自动抓取_15分钟内开始使用Amazon Web Services和全自动资源调配
  7. 几种比较好看的滚动条样式及代码
  8. 农业部部署农业大数据发展工作 评:对农业现代化很重要
  9. 一个 SQL 同时验证帐号是否存在、密码是否正确
  10. 作者:陈昕(1982-),女,博士,中国科学院计算机网络信息中心研究员
  11. 设计模式 迪米特法则
  12. 如果你不够优秀,人脉是不值钱的
  13. linux下PowerDNS不完全配置
  14. pd虚拟机镜像:懒人一键安装win10、11
  15. NetMeeting不能共享桌面的解决办法
  16. 「Mac小技巧」教你如何解决WiFi的国家地区代码冲突
  17. 电路串联和并联图解_串联和并联的电路图怎么画
  18. QQ发送网址链接 安全性未知
  19. Oracle查询上周日期sql,Oracle 获取上周一到周末日期的查询sql语句
  20. HarmonyOS使用ArkUI绘制圣诞树

热门文章

  1. python图片二值化提高识别率
  2. Java集合---ConcurrentHashMap原理分析
  3. 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页...
  4. struts2 result随笔
  5. 设计模式学习-每日一记(16.模板方法模式)
  6. 成为Java高手的25个学习目标
  7. 光栅图形学——直线段的扫描转换算法
  8. theano 后端爆内存
  9. 数据增强在贝壳找房文本分类中的应用
  10. 【资讯】国内 42 所一流大学综合排名出炉!清北之后谁是国内第三?