如何配置Redhat下无线网卡

http://www.guanggao6.com 08-24电脑硬件知识[阅读:671次]

如何配置Redhat下无线网卡为http://www.guanggao6.com整理发布,类型为电脑硬件知识,本站还有更多关于电脑硬件,电脑硬件维修,电脑学习,电脑入门,电脑学习 - 电脑硬件知识的文章。
正文:

无线上网是近几年来网络发展的重点。由于脱离了物理的线缆限制,无线上网已经成为众多家庭和办公环境的首选方式。许多传统的基于有线局域网的环境也都在向无线迁移,这对于Linux下的驱动程序提出了很迫切。众所周知,对于无线网卡这种新产物,Linux的驱动支持总是慢一拍,大多数网卡的驱动盘都是只有Windows的驱动,直到目前也很少有附加Linux驱动的。这对于Linux在国内的普及和发展造成了很大的障碍。
一、引言
这两天根据实验室内部的需要,承担了改造现有网络,增加无线AP的工程。由于本实验室长期从事Unix/Linux方面的研究和工程项目,有大量的Linux主机需要解决无线上网问题。为此笔者一直在广泛的搜寻Linux下面可以支持无线网卡,也曾经在GOOGLE上查阅了无数资料,包括硬件厂商的、第三方开源支持的,等等。但是这些资料看起来很多,但是实际上符合我的需求的可以说很少,主要有以下几个问题:
1. 现有的叙述Linux下面无线网卡支持方案的文章,绝大多是讲使用ndis wrapper的方式。这个软件包只支持2.6以上内核,对于内核版本2.4.20的根本不支持。而实验室内大多数机器都在使用传统的RedHat 9.0,其内核恰恰用的是2.4.20,如果再需要换内核就比较麻烦了。另外,它使用的重新利用WindowsXP驱动的方式,从里面分析二进制指令以转化成Linux驱动,但是目前转化率并不是100%完善,对windows xp的驱动也不是100%可用。
2. ndis wrapper需要重编译内核,这造成安装过程非常麻烦,另外很多已经在运行的应用是根本不允许再编译内核的。因此,最好拿来驱动编出模块,直接加载就能用。笔者认为驱动程序就是应该使用上尽量简化,比较反感需要重新编译内核的任何应用。
3. 所讲的无线网卡多是PCMICA、USB的,对于标准PCI的讲的相对较少。而我们需要支持的大多数是PC机,使用PCI网卡是最方便的,也是最省钱的www.seozs.cn 。
4. 所讲的无线网卡在市场上不一定好买,所述的型号都是比较老的,或者说是国外广泛使用而在国内市场很少见的。而对于现在市面上最流行的TP-link、D-Link等常见网卡,却很难找到是否可以支持的明确回答,往往回答都很含混,使得读者没有方法判断,也没有精力去买挨个买网卡做实验。
鉴于以上分析,我试用了Madwifi的驱动(http://www.madwifi.org),使用了当前最好买也最便宜(当然假货也最多)的Tp-link 550G 802.11G网卡。这个网卡是TP-link 802.11g的代表产品,是标准PCI接口的,带tp-link的域展功能(将802.11G的有效距离从30、40米扩展到最远108米,是TP-Link的一大独特卖点)。之所以用tp-link,也主要是因为它便宜,好买,对于我们这一下买几十个的规模非常经济。如果改D-link,则每个网卡要贵上一倍。
下面的讲述就不做什么原理分析了,完全按照已经实现的步骤。因此要求读者有最基础的Linux驱动配置知识。所选用的操作系统版本为RedHat 9,内核为2.4.20。对于2.6以上的内核,Madwifi驱动也作了完美支持,读者可以在http://www.madwifi.org找到类似的升级方法。
二、网卡选型 

出于省钱和好买的原则,在中关村的一个做电脑生意的朋友处拿了个tp-link 541G的路由器(即AP),又拿了一个550G的无线网卡。541G 用于做AP,550G用于安装在每台PC机上。550G只有“域展”(加大传输距离,号称室外可达800米,没有亲自试过)没有“速展”(最高速率做到了108Mb/s,而且与标准的54M设备兼容)。到目前为止TP-Link的最新无线网卡型号是650G,是两者兼有的新产品。但是当前650G还比较贵,出货少,万一我试验不成功厂家那里不好退货。所以也不好强求所以就作罢了——550G也已经不错了。 

通过在网上查找资料,发现这个无线网卡的芯片型号为Atheros AR5005G,是madwifi支持的类型。 

三、AP设置 

拿回产品之后先设置AP。先简单说一下我们现在的网络环境。我们就一个房间,总共20多台机器,从学校校园网的交换机上面接下来一根100M的对外的LAN线,接到本实验室的一台交换机。交换机端口上划分的子网是159.226.204.0/255.255.255.0.,网关159.226.204.199,然后在实验室里面通过多个HUB一级一级的往下分。 

AP的安装还是比较简单的,完全参照产品说明书中的配置方法: 

1. 将AP直接接到交换机的某个端口上,或者随便接到局域网的某个HUB上。把AP四个LAN口之一与HUB相连。 

2. 找一台笔记本也接到这HUB上,将改笔记本的IP为192.168.1.250/255.255.255.0(AP内置的默认地址)。 

3. 打开浏览器,访问AP: http://191.268.1.1:80,在这个WEB界面里先设AP的IP为159.226.204.250。为了安全起见,将AP设上连接密码,例如设essid为“gait-wifi”,设WEB加密方式为128位共享口令,并输入密码(13位ASCII码)。在AP上设定好自动分配IP地址(DHCP)。设完后重启AP。 

4. 先找一个迅驰笔记本,测试AP设置是否正常。通过Windows SP2内置的无线网络管理程序,成功的找到了AP,输入密码后连接正常,并且可以正确分配IP地址和DNS。---http://www.bianceng.cn 

四、Linux软硬件平台 

1. 硬件:普通PC,CPU为AMD AM2 3200+,内存512M。 

2. 软件:RedHat 9,内核2.4.20。 

五、网卡配置 

下面讲关键的部分,Linux下Tp-link无线网卡的配置过程。 

1. 找台装好了windows xp和redhat 9.0双系统的机器。拆开机箱,把原来的LAN网卡拿掉,换上550G。按原样装好机箱。 

2. 开机先进windows,直接提示找到新硬件。在随网卡所附的驱动盘上找到550G/650G的目录,系统自动搜索驱动,安装后先不用重启。然后还要装TP-link的管理工具,在电脑里找光盘上550G/650G的目录,有一个setup.exe装完即可。重启之后,打开Windows无线管理,搜索无线网络找到AP(essid为gait-wifi),填入密码就可以上网了。IP和DNS的设置都是自动分配的。总之在windows下的安装很简单,说明书讲的很详细了。 

3. 重启机器进入red hat 9.0。启动过程中提示原来网卡找不到了,不用理会。 

4. 先检查/usr/src/linuc下有没有安装源代码(Madwifi驱动的编译是需要源代码文件的),如果没有,就找到Redhat安装光盘,用rpm –hvi kernel-source-2.4.20-8.rpm(好像在第3张盘)装上。 

5. 在编译驱动之前,需要准备源代码目录: 

# cd /usr/src/linux 

# make menuconfig // 在对话框出现后直接选exit,然后保存配置即可 

# vi Makefile // 找到版本号处的“EXTRAVERSION=8-custom”,改成“EXTRAVERSION=8” 

# make dep //注意只需make dep,不需make。madwifi需要的只是一些有关系统内核配置信息的头文件,不需要重新编译整个内核。 

6. 下载驱动程序源代码:在http://madwifi.sourceforge.net下载到最新版本的源代码包madwifi-cvs-current.tar.gz. 

7. 编译驱动程序: 

# cp madwifi-cvs-current.tar.gz /tmp 

# cd /tmp 

# tar zxvf madwifi-cvs-current.tar.gz 

# cd madwifi 

# make KERNELPATH=/usr/src/linux 
8. 安装驱动程序: 

# make install 

# /sbin/modprobe ath_pci //加载模块。至此网卡应该已经能够成功配置 

9. 检查网卡状态: 

# dmesg 

如果已经成功配置网卡并加载,在dmesg里最后的输出应该可以看到550G的信息。 

10. 网卡配置:此时执行/sbin/ifconfig,应当只能看到一个lo接口。这说明无线网卡已经正常安装了,但是还没有经过网络参数配置。下面需要进行无线网卡的配置。 

# /sbin/ifconfig ath0 159.226.204.197 netmask 255.255.255.0 

上面一句配置接口ath0的属性。此时再执行/sbin/ifconfig,应当能够看到ath0接口了。虽然接口是建立起来了,但是ping交换机是不通的。需要再用iwconfig配置无线接入的参数。 

# /sbin/iwconfig ath0 essid “gait-wifi” mode managed key “s:13位ASCII密码” rate auto 

然后用iwconfig应该可以看到网卡成功的连接,速率应该是54M. 这时ping 159.226.204.199应该可以ping通: 

# ping 159.226.204.199 

PING 159.226.204.199 (159.226.204.199) 56(84) bytes of data. 

64 bytes from 159.226.204.199: icmp_seq=1 ttl=255 time=0.647 ms 

64 bytes from 159.226.204.199: icmp_seq=2 ttl=255 time=7.29 ms 

--- 159.226.204.199 ping statistics --- 

2 packets transmitted, 2 received, 0% packet loss, time 999ms 

rtt min/avg/max/mdev = 0.647/3.968/7.290/3.322 ms 

但是上外网还不行。因为路由没有配置。加一句默认路由: 

# route add default gw 159.226.204.199 

同时在/etc/resolve.conf里加上默认DNS,否则是无法解析域名的。例如: 

# cat /etc/resolv.conf 

nameserver 202.112.128.51 

这时就可以上外网了。例如: 

# lynx www.ban102.com.cn 

11. 配置网上自动启动:在以上步骤中成功的使用了无线网卡,但是都是手工敲入的命令,如果机器重启那么一切配置都会丢失了。需要修改系统配置,使之重启机器能够自动生效。这个配置与普通网卡的配置过程相同,都是在/etc/sysconfig/network-scripts下建立网络接口描述文件,并填写正确的配置内容: 

# cd /etc/sysconfig/network-scripts 

# cp ifcfg-eth0 ifcfg-ath0 //从当初eth0描述文件的基础上直接修改 

# vi ifcfg-eth0 //把首部的ONBOOT=yes改成ONBOOT=no,不再启动以太网接口 

# vi ifcfg-ath0 //把首部的DEVICE=eth0改成DEVICE=ath0 

# vi etc/sysconfig/hwconfig //任意拷贝一段PCI的设备,把driver字段改成“ath_pci”,desc可以任意修改。 

# vi /etc/rc.d/rc.local // 最后加一句/sbin/iwconfig ath0 essid “wifiap” mode managed key “s:13位的ASCII密码www.seozs.cn ” rate auto 

12. 重启动机器,再测试。All things done. 

在以上各步骤中,由于软件和文件系统的具体差异,都可能出现一些问题,尤其是在内核源代码配置和编译过程中。这需要读者综合运用Linux驱动程序方面的基础知识,视具体问题,使用你的智慧和经验加以解决。 

六、其它说明 

1. 本文所做的实验都在在PC机上进行的,后来又在笔记本上作了实验,使用了同为TP-Link品牌的PCMICA无线网卡TP-610G。这个网卡和550G仅在于接口形式的不同,内核芯片是完全相同的。所以配置方法完全相同,工作的也很正常。但是对于大多数内置无线网卡的笔记本,除了少数厂家提供了官方驱动(如Intel的802.11 B/G系列),其它笔记本仍然存在很多问题。 

2. 根据mdwifi的官方声明,这个驱动的当前版本只支持PCI和PCMICA接口的网卡,对于USB尚不支持,想毕是由于技术上尚未实现全面。截止到目前为止仍然没有什么进展。这一点对于网卡选型尤其关键。如果选用了USB无线网卡,本文的方法就失效了,需要再下功夫解决驱动问题。 

七、总结 

以上是我建立无线AP和在linux下使用无线网卡的全过程,总之还算是比较简单的。这个madwifi驱动适用于几乎所有Atheros芯片的网卡(注意只支持PCI、mini PCI、pcmica的,不支持USB的),内核2.4、2.6都可以,也就是说从red hat7.3就可以用,而且不用重编内核。希望能对在linux下使用无线的人一点参考。 

后来笔者测试了一下最新版的Ubuntu 6.04,发现Ubuntu内置了madwifi的驱动,安装之后就能自动识别网卡,这样就省略了上面所有的配置过程,可供参考。但是对于大多数其它发行版(尤其是比较传统的服务器发行版),还是按照本文的方法手工配置。 
如果觉得《如何配置Redhat下无线网卡》不错,可以推荐给好友哦。