在嵌入式Linux中实现802.11b无线网关_第1页
在嵌入式Linux中实现802.11b无线网关_第2页
在嵌入式Linux中实现802.11b无线网关_第3页
在嵌入式Linux中实现802.11b无线网关_第4页
在嵌入式Linux中实现802.11b无线网关_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在嵌入式Linux中实现802.11b无线网关    构成有线网络的传输媒介主要依赖铜缆或光缆;但有线网络在某些场合要受到布线的限制,特别是当要把相隔较远的节点连接起来时,敷设专用通信线路的布线施工难度大、费用高、耗时长,对正在迅速扩大的连网需求形成了瓶颈。无线局域网的出现克服了上述缺点,因此无线局域网发展比较迅速。基于802.11b的产品已成为应用主流。     这些产品使用的是2.4 GHz频段,能够在短距离内实现11 Mb/s的接入速率,每个接入点可以同时支持多个用户的接入。而无

2、线网关作为连接无线终端与有线网络之间的桥梁,是构成无限局域网的重要组成部分。作者重点要探讨的就是如何在嵌入式Linux系统上实现无线网关的功能。 1 嵌入式Linux的基本原理    嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁减,适于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统由于硬件的先天限制,只具有极稀少的硬件资源,通常不具有磁盘而用小容量的Disk on Chip或Disk on Module等来代替。   &#

3、160;Linux作为嵌入式操作系统是完全可行的。它能处理嵌入式任务和用户界面;将Linux看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其他的分拆的微内核到完整的服务器,支持所有的文件系统和网络服务。Linux作为嵌入式系统,对许多CPU和硬件平台具有易移植、稳定、功能强大、易开发的优点。Linux作为一种可裁减的软件操作系统,是发展未来嵌入式设备的绝佳资源。因为Linux的源代码公开,易于定制,提供完成嵌入式功能的基本内核和所需要的用户界面。    一个小型的嵌入式Linux系统需要三个基本要素:引导工具、Linux微内核(内存管理、进

4、程管理和事务处理)和初始化进程。如果要它成为完整的操作系统且继续保持小型化,还得加上硬件驱动程序、文件系统以及提供所需功能的一个或多个应用程序。2 802.11b无线网关在嵌入式Linux上的实现    由于Linux开始是为台式机开发的,加上嵌入式系统硬件资源固有的一些限制,因此,要实现无线网关在嵌入式Linux系统上的应用,就需要对Linux系统进行特别定制,删除无线网关不需要的部分,真正做到精简系统,减少成本的目的。2.1 精简内核    Linux内核是可以根据特定的要求进行定制的,我们

5、使用的是2.4.4的内核。在/usrsrcLinux目录下,使用 make menuconfig,去掉内核对floppy、cdrom的支持选项;Second extended fs(ext2)是实际上的 Linux文件系统的标准,所以除了此项,把对其他所有filesystem的支持去掉;去掉内核对sound的支持;去掉所有的字符设备(char- acter device)等。    在去除的同时,要根据AP应用软件及一些特定功能的要求,在内核中留下对需要的驱动的支持,具体的有:无线网关连接无线网络与有线网络,因此要

6、保留对网络的支持(network support),保留对TCP/IP stack的支持,保留对以太网卡如嵌入式最常用的R18139驱动的支持,并且要在内核中设置模块项;嵌入式系统如果使用的是Disk On Chip,则内核中还要选中对它的支持:M-sys-tems drivers; 在内核中保留对特定功能的支持,如要使用PPP(点对点协议),则编译的内核必须包含对PPP的支持。    配置完成后,重新编译内核,然后修改Linux系统引导器lilo的配置文件并最后以新编译的核作为启动内核。重启计算机,若运

7、行一切正常,则精简内核的工作就完成了。2.2 缩小Linux文件系统    嵌入式Linux本身是一种操作系统。它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外部设备的接口。它存在的目的是为了管理所有的硬件资源,并且提供给应用软件一个合适的操作环境,因此在对嵌入式Linux系统进行大幅度删除、缩小的同时也要保留一些基本的命令和目录。    这些保留的命令和目录大体可以分为三类。一类是Linux系统启动所需要的。这类重要的文件有init、getty等,重要的目录与文件有 /etc/rc.d、

8、/etc/inittab等;在启动时还会调用目录/bin及/sbin下的一些命令,若已删除,可以根据启动时的出错信息进行添加。第二类是用于完成一些系统基本功能的保留命令和目录,最简单的如拷贝命令cp,进入和跳出目录的命令cd,列举目录下内容的命令ls等,这些命令完成操作系统最基本的功能。另一些命令需要与特定的配置文件或是存放配置文件的目录相对应,完成相对特殊的功能。     当然,具体要实现什么功能要根据实际来定,并尽可能保留必要的命令与相应的目录或是配置文件,达到在完成功能的情况下尽可能少地占用存储空间。完成上面的裁减工作后,重启。若Linu

9、x能够正常启动、运行,表明初步的Linux嵌入式系统已经构架成功。最后一类就是使无线网关能够正常工作的。无线网关是以运行脚本命令pcmcia将驱动程序中已编译好的目标文件作为模块加载到系统中而启动的,Linux提供了depmod、insmod、 rmmod及其他一些命令来保证适当的模块以正确的顺序加载,所以系统中必须保证存在这些命令,同时无线网关启动时还要读取配置文件。这些配置文件通知无线网关的驱动程序相关参数的设置,所以配置文件所在的目录/ect/pcmcia要保留。有了这些以后,无线网关就能正常启动了。2.3 无线网关功能的实现    如图

10、1所示,无线网关需要完成的最重要的功能就是:与无线节点通信、桥接所有的无线节点、实现无线网络和有线网络的跨网段连接。             配置Linux的内核模块,用PCMCIA CardService的方式驱动PCMCIA,运行“make modeules”以及 “makemodeules_install"来产生和安装核心模组。由于标准发行的“Linux内核源码中,桥接功能和封包过滤功能(NetFiIi ter)不能一起正常工作,

11、因此为了要在同一台计算机上同时运行桥接功能和IPtables,需要对核心源码进行修补。     相关补丁可以从http:/bridgesourceforgenet/上下载。另外,要获取PCMCIA-CS 3.2.1和 PRISM2 HlostAP的驱动程序包,移植PCMCIA-CS和PRISM2 HostAP的驱动程序。完成这一步工作需要具有Linux下编译程序源码的简单知识,主要是交叉编译器(GCC)的使用。编译好的模块o文件放在/lib/modules/2.4.4/misc:下,然后用 depmod-a使此模块

12、成为可加载模块。模块用insmod命令加载,用rmmod命令卸载,并可以用lsmod命令查看所有已加载的模块的状态。最后,桥接有线网卡和无线网卡,需要Linux下硬件(主要是网卡)配置和网络配置的一些基本知识。              模块搭建完毕后进行桥接功能的构建。解开桥接补丁bridge-utils.targz,编译全部通过并且移植成功后,可以用 “ifconfig-a”命令查看所有的网络接口:lo本地loopback设备;ethO第一个以太网卡;ethl第

13、二个以太网卡;wlan0无线网卡。用“ifconfig<设备>0.O.0.O”命令改变除了lo设备以外所有网络接口的工作方式,以迫使系统进入杂乱模式,可以接收所有数据包。然后,执行“brctl addbr br0”命令来添加一个名字为br0的桥接设备,再用 “bretl addif br0 ethO”和“brctl addif br0wlan0"把无线端和有线端的接口绑定。接着,用 “ifeonfigbr0 8 up'使桥接设备生效。  

14、60;      内核配置时选定GeneraI setup->     ·     Sysctlsupport,这样才会在板子的文件系统中/proc/sys/net/ipv4出现ip_forward文件,然后在应用程序中提供ena程序(加到etc /initd/rcS中一句/bin/ena-e),将ip_for-ward文件中默认的0改为1,这样就打通了数据转发的通道。下面就是要加上 iptables,以支持NAT(NetWork

15、 Address Translation)。从网上下载iptables-1.2.5软件,在 iptables-1.2.5目录下执行make,编译通过后,将生成的可执行文件iptables加到ramdisk里面,然后烧写到板子上进行配置即可。      ·     iptables对NAT的支持既需要Linux内核的支持,还需要iptables命令的设置: ·     内核编译选项。在内核配置选单中的“Networkingopt

16、ions->"选项下,选中 “NetWork packet filtering(replaces ipchains)”项,并且在下面的“IP:Netfilter Con figuration->”选项中选择全部选项。 ·     iptables命令支持    #!binbash    # 打开端口转发    echo 1>/proc/sy

17、s/net/ipv4/ip_forward加入转发规则:iptables - t nat - A POSTROUTING - 0 ethl - j MASOUERADE。    至此,构建无线网关的工作全部完成。 ·     3 测试结果    搭建无线网关的测试系统如图2所示。 ·    

18、0;            将上位机的网关设置为69,用VB 6.0在上位机上开发一个负责监听网络的应用程序;在无线终端一方编写一个客户端程序,负责客户端数据的发送和接收显示,并在无线终端一方添加从网关到上位机的路由。然后,上位机运行ping命令,测试结果如下:    # ping 00    PING 192.

19、168.6.100 (00):56 data bytes    64 bytes from 00:icmp_seq=0 ttl=255 time=1.8 ms    64 bytes from 00:icmp_seq=1 ttl=255 time=1.4 ms    64 bytes from 00:icmp_seq=2 ttl=255 time=1.4 ms   

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论