无线上网是近几年来网络发展的重点。由于脱离了物理的线缆限制,无线上网已经成为众多家庭和办公环境的首选方式。许多传统的基于有线局域网的环境也都在向无线迁移,这对于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网卡是最方便的,也是最省钱的。
4. 所讲的无线网卡在市场上不一定好买,所述的型号都是比较老的,或者说是国外广泛使用而在国内市场很少见的。而对于现在市面上最流行的TP-link、D-Link等常见网卡,却很难到是否可以支持的明确回答,往往回答都很含混,使得读者没有方法判断,也没有精力去买挨个买网卡做实验。
  鉴于以上分析,我试用了Madwifi的驱动(),使用了当前最好买也
最便宜(当然假货也最多)的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驱动也作了完美支持,读者可以在到类似的升级方法。
 二、网卡选型
 出于省钱和好买的原则,在中关村的一个做电脑生意的朋友处拿了个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内置的默认地址)。 0p M k!pt
  3. 打开浏览器,访问AP: 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。
 四、Linux软硬件平台 N5mc{!h5@9V
  1. 硬件:普通PC,CPU为AMD AM2 3200+,内存512M。
  2. 软件:RedHat 9,内核2.4.20。
h5平台源码下载
 五、网卡配置
  下面讲关键的部分,Linux下Tp-link无线网卡的配置过程。
  1. 台装好了windows xp和redhat 9.0双系统的机器。拆开机箱,把原来的LAN网卡拿掉,
换上550G。按原样装好机箱。
2. 开机先进windows,直接提示到新硬件。在随网卡所附的驱动盘上到550G/650G的目录,系统自动搜索驱动,安装后先不用重启。然后还要装TP-link的管理工具,在电脑里光盘上550G/650G的目录,有一个装完即可。重启之后,打开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. 下载驱动程序源代码:在madwifi.sourceforge下载到最新版本的源代码包
  7. 编译驱动程序:
  # cp /tmp
  # cd /tmp
  # tar zxvf
  # 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 ---

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。